2012-12-10 40 views
5

Ngày tốt tất cả, tôi đã tạo một ứng dụng nhưng tôi đã nhấn một bức tường. khi bạn truy cập trang web bằng trình duyệt trên máy tính để bàn như firefox hoặc chrome và nhấp vào liên kết tải xuống, nó sẽ bắt đầu tải xuống tệp nhưng khi tôi mở cùng một trang trong ứng dụng Android hiển thị trang bằng cách sử dụng chế độ xem web và nhấp vào liên kết tải xuống không có gì xảy ra ở tất cả, nó chỉ ngồi đó như nó không biết phải làm gì với liên kết đó. nếu bạn có thể giúp tôi, đó sẽ là một sự trợ giúp lớn và giúp tôi trở lại đúng hướng.webview không tải xuống tệp

đây là link download tôi sử dụng cho một tập tin pdf trên trang web của tôi:

<img src="images/Art1.jpg" width="80" height="166" /><a href="m2.pdf">Download</a> 

đây là tập tin main.xml tôi cho ứng dụng Android của tôi:

<?xml version="1.0" encoding="utf-8"?> 
    <WebView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/webview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
    /> 

xin vui lòng tôi sẽ nhất gratefull nếu có ai có thể giúp chỉ cho tôi trên con đường bên phải.

package com.jeffonlinelibrary; 

import android.app.Activity; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.view.Window; 
import android.webkit.WebChromeClient; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class WebPageLoader extends Activity 
{ 
    final Activity activity = this; 

    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     this.getWindow().requestFeature(Window.FEATURE_PROGRESS); 
     setContentView(R.layout.main); 
     WebView webView = (WebView) findViewById(R.id.webview); 
     webView.getSettings().setJavaScriptEnabled(true); 

     webView.setWebChromeClient(new WebChromeClient() { 
      public void onProgressChanged(WebView view, int progress) 
      { 
       activity.setTitle("Loading..."); 
       activity.setProgress(progress * 100); 

       if(progress == 100) 
        activity.setTitle(R.string.app_name); 
      } 
     }); 

     webView.setWebViewClient(new WebViewClient() { 
      @Override 
      public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) 
      { 
       // Handle the error 
      } 

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

     webView.setDownloadListener(new DownloadListener() { 

      public void onDownloadStart(String url, String userAgent, 
        String contentDisposition, String mimetype, 
        long contentLength) { 
       // handle download, here we use brower to download, also you can try other approach. 
       Uri uri = Uri.parse(url); 
       Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
       startActivity(intent); 
      } 
     }); 

     webView.loadUrl("http://jeffonlinelibrary.comuv.com/jeffOnlinelibraryApp"); 
    } 
} 

Trả lời

8

Đặt DownloadListener thành WebView của bạn. Và sử dụng ứng dụng Brower hoặc DownloadManager để tải xuống tệp.

webview.setDownloadListener(new DownloadListener() { 
     @Override 
     public void onDownloadStart(String url, String userAgent, 
       String contentDisposition, String mimetype, 
       long contentLength) { 
      // handle download, here we use brower to download, also you can try other approach. 
      Uri uri = Uri.parse(url); 
      Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
      startActivity(intent); 
     } 
    }); 
+0

cảm ơn bạn rất nhiều vì đã trả lời, nhưng một chút nhầm lẫn, xin vui lòng cho biết tôi nên nhập mã này ở đâu? – chinedudeoracle

+0

... Tìm webview trong hoạt động của bạn và đặt Trình tải xuống cho nó. – faylon

+0

cảm ơn bạn một lần nữa vì tất cả sự giúp đỡ, nhưng khi tôi chèn mã vào tệp hoạt động của mình, nó tạo ra một số lỗi như: – chinedudeoracle

Các vấn đề liên quan