Android webview使用url链接下载任何文件或mp3文件

时间:2017-08-21 00:17:20

标签: android android-studio android-webview

我正在创建一个webview应用程序,用于使用webview中的url链接将.mp3文件下载到手机中。我是这个舞台上的新手。很多例子我见过,但我明白了,因为它与我目前的代码有点不同。我很困惑。 所以基于给出的代码..我需要输入什么代码,以便用户可以点击webview中的url链接将任何文件,特别是.mp3文件下载到内部或外部存储器中?

(activitymain.xml)

<WebView android:id="@+id/webView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true" />

(AndroidManifest.xml)

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"/>

(MainActivity.java)

webview = (WebView) findViewById(R.id.webView);
WebSettings webSettings = webview.getSettings();
webSettings.setJavaScriptEnabled(true);

webview.setWebViewClient(new WebViewClient());
webview.loadUrl("WEBLINK");

1 个答案:

答案 0 :(得分:0)

您是否见过this问题?我想您应该使用DownloadListener进行文件下载:

WebView.setDownloadListener

  

注册渲染引擎无法处理内容时要使用的接口,应该下载。这将取代当前的处理程序。

因此,您的代码应如下所示:

webview.setDownloadListener(new DownloadListener() {
    public void onDownloadStart(String url, String userAgent,
                String contentDisposition, String mimetype,
                long contentLength) {
        Intent i = new Intent(Intent.ACTION_VIEW);
        i.setData(Uri.parse(url));
        startActivity(i);
    }
});