2010-10-28 149 views
0

有沒有人知道如何獲得應該在webview中下載的內容的完整url。 我注意到有setDownloadListener(DownloadListener listener)方法,我們可以在這裏獲得URL onDownloadStart方法。Android WebView下載監聽器

但我有問題,當我打開頁面A,我單擊頁面A中的超鏈接,並直接打開一個新頁面B.在頁面B我下載一些文件,所以我想知道我只下載的文件的完整url,但我不能使用上面的方法。任何解決方案

謝謝。

回答

1

我已經在Android的日食解決同樣的問題,首先我創建了一個webview加入downloadListner,在那之後我檢查兩臺機器連接到互聯網或沒有,如果有的話,該URL被加載到webview,否則一錯誤消息出現「無網絡」,就是這樣。你可以在我的應用程序中查看我正在使用的代碼。

@SuppressLint("SetJavaScriptEnabled") 
public class MainActivity extends 
{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     WebView wv = (WebView) findViewById(R.id.webView1); 
     wv.getSettings().setJavaScriptEnabled(true); 
     wv.setWebViewClient(new WebViewClient()); 
     wv.setDownloadListener(new DownloadListener() 
     { 
      public void onDownloadStart(String url, String userAgent,StringcontentDisposition, String mimetype,long contentLength) 
      { 
       Intent intent = new Intent(Intent.ACTION_VIEW); 
       intent.setData(Uri.parse(url)); 
       startActivity(intent); 
      } 
     }); 
     ConnectivityManager connMgr = (ConnectivityManager) 
     this.getSystemService(Context.CONNECTIVITY_SERVICE); 

     final android.net.NetworkInfo wifi = 
     connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 

     final android.net.NetworkInfo mobile = 
     connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 

     if(wifi.isAvailable()) 
     { 
      wv.loadUrl("http://www.example.com"); 
     } 
     else if(mobile.isAvailable()) 
     { 
      wv.loadUrl("http://www.example.com"); 
     } 
     else 
     { 
      Toast.makeText(this, "No Network " , Toast.LENGTH_LONG).show(); 
     }   
    } 
}