2012-03-15 109 views
4

我正在創建一個應用程序,允許大學生從應用程序而不是瀏覽器下載他們的學習材料。 主頁有很多主題名稱。 每個主題的名稱導致新的網頁。 所以我使用了WebViewClient。 但是,在最後一頁當我點擊* .ppt或* .pdf文件時,它會打開垃圾。如何使用DownloadListener?

我想要在應用程序中下載這些文件。

我如何暗示DownloadListener

package jiit.app; 

import android.app.Activity; 
import android.os.Bundle; 
import android.webkit.WebSettings; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class sm extends Activity 

{ 
WebView browser; 
protected void onCreate(Bundle anyvar) 
    { super.onCreate(anyvar); 
     setContentView(R.layout.sm); 
     browser=(WebView)findViewById(R.id.webkit); 
     WebSettings webSettings = browser.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 
     webSettings.setBuiltInZoomControls(true); 
     browser.getSettings().setDefaultZoom(WebSettings.ZoomDensity.CLOSE); 
     browser.setWebViewClient(new WebViewClient()); 
     { 
      browser.loadUrl("http://www.sm.ividhya.com/j128/"); 
     } 
    } 
} 

回答

7

嘗試這個DownloadListener例如:

public class webActivity extends Activity { 

WebView webView; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     this.webView=(WebView) this.findViewById(R.id.webview); 
     this.webView.getSettings().setSupportZoom(false); 
     this.webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
     this.webView.loadUrl("http://www.sm.ividhya.com/j128/"); 
     this.webView.setWebViewClient(new WebViewClientDemo()); 
     webView.setDownloadListener(new DownloadListener() { 
      public void onDownloadStart(String url, String userAgent, 
          String contentDisposition, String mimetype, 
          long contentLength) { 

              Uri uri = Uri.parse(url); 
      Intent intent = new Intent(Intent.ACTION_VIEW,uri); 
        startActivity(intent); 
      } 
    }); 

    } 
    private class WebViewClientDemo extends WebViewClient { 
    @Override 

    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
    view.loadUrl(url); 
     return true; 
    } 
+1

在[BLOB URL]的情況下不工作(http://stackoverflow.com/q/35400616/1761003 ) – Gattsu 2016-12-23 10:18:12