2016-03-23 15 views
2

WebView'de bir web sitesi yükledim, bu da mp3 indirmeye izin veriyor. Bununla birlikte, indirme düğmesine sağ tıklayıp/uzun tıklatmanız ve bir mp3 indirmek için "bağlantısını olarak kaydet" seçeneğine tıklamanız gerekir. İndirme düğmesine dokunursam, indirme yerine akışa başlar.Web sayfasındaki dosyaları indirilsin mi?

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_download); 

    webView = (WebView) findViewById(R.id.webView1); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.setWebViewClient(new MyWebViewClient()); 

    webView.getSettings().setLoadsImagesAutomatically(false); 
    // download manager 
      webView.setDownloadListener(new DownloadListener() { 
       @Override 
       public void onDownloadStart(String url, String userAgent, 
         String contentDisposition, String mimeType, 
         long contentLength) { 
        DownloadManager.Request request = new DownloadManager.Request(
          Uri.parse(url)); 
        request.setMimeType(mimeType); 
        String cookies = CookieManager.getInstance().getCookie(url); 
        request.addRequestHeader("cookie", cookies); 
        request.addRequestHeader("User-Agent", userAgent); 
        request.setDescription("Downloading file..."); 
        request.setTitle(URLUtil.guessFileName(url, contentDisposition, 
          mimeType)); 
        request.allowScanningByMediaScanner(); 
        request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); 
        request.setDestinationInExternalPublicDir(
          Environment.DIRECTORY_DOWNLOADS, URLUtil.guessFileName(
            url, contentDisposition, mimeType)); 
        DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); 
        dm.enqueue(request); 
        Toast.makeText(getApplicationContext(), "Downloading File", 
          Toast.LENGTH_LONG).show(); 
       } 
      }); 
      //download manager 
    webView.loadUrl("http://www.beemp3s.org/"); 
} 

private class MyWebViewClient extends WebViewClient { // handle URLs in 
                 // webview only 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    } 

Kodumu akış yerine dosya indirmek için nasıl zorlarım? :)

+0

Web görünümünün tüm URL'leri işlemesine izin vermeyin. Zaten 'shouldOverrideUrlLoading (...)' –

+0

'u genişletiyorsunuz Sadece Web sayfamdaki her şeyi indirmek istiyorum ve kendi indirme yöneticimi kullanarak – Emily

cevap

-1

Yardım edip edemeyeceğini bilmiyorum ama bu satırları eklemeyi deneyin.

private class myWebViewClient extends WebViewClient { 

@Override 
public boolean shouldOverrideUrlLoading(WebView view, String url) { 
    if (url.contains("beemp3.org")) { 
     view.loadUrl(url); 
    } else { 
     Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
     startActivity(i); 

    } 


    return true; 

} 
İlgili konular