2012-12-10 17 views
5

शुभ दिन सभी, मैंने एक ऐप बनाया है लेकिन मैंने एक दीवार मारा है। जब आप किसी फ़ायरफ़ॉक्स या क्रोम जैसे डेस्कटॉप ब्राउज़र का उपयोग कर किसी वेबसाइट पर जाते हैं और डाउनलोड लिंक पर क्लिक करते हैं तो यह फ़ाइल डाउनलोड करना शुरू कर देता है, लेकिन जब मैं अपने एंड्रॉइड ऐप में एक ही पेज खोलता हूं जो वेबव्यू का उपयोग करके पेज प्रदर्शित करता है और डाउनलोड लिंक पर क्लिक नहीं करता है ऐसा होता है, यह बस वहां बैठता है जैसे कि यह नहीं जानता कि उस लिंक के साथ क्या करना है। अगर आप मेरी मदद कर सकते हैं तो यह एक बड़ी मदद होगी और मुझे फिर से ट्रैक पर वापस लाएगा।वेबव्यू फ़ाइल डाउनलोड नहीं करता

<?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" 
    /> 

कृपया मैं सबसे होगा:

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

यह मेरा android ऐप्लिकेशन में मेरी main.xml फ़ाइल है:

इस

डाउनलोड लिंक मैं अपनी साइट पर एक pdf फ़ाइल के लिए उपयोग है अगर कोई मुझे सही रास्ते पर इंगित करने में मदद कर सकता है तो आभारी रहें।

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"); 
    } 
} 

उत्तर

8

अपने वेब व्यू में डाउनलोड लिस्टनर सेट करें। और फ़ाइल डाउनलोड करने के लिए ब्रॉवर ऐप या DownloadManager का उपयोग करें।

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

उत्तर के लिए बहुत बहुत धन्यवाद, लेकिन थोड़ा उलझन में कृपया मुझे यह कोड कहां रखना है? – chinedudeoracle

+0

... अपनी गतिविधि में वेबदृश्य खोजें और डाउनलोड लिस्टनर को इसमें सेट करें। – faylon

+0

सभी मदद के लिए एक बार फिर धन्यवाद, लेकिन जब मैंने अपनी गतिविधि फ़ाइल में कोड डाला तो यह कुछ त्रुटियों को उत्पन्न करता है जैसे: – chinedudeoracle

संबंधित मुद्दे