Android 如何通过Webview下载PDF

Android 如何通过Webview下载PDF,android,pdf,webview,download,Android,Pdf,Webview,Download,我对Android非常陌生,但我创建了一个网络视图,它会显示一个wordpress页面,其中包含PDF的下载链接,但当我点击它时,什么都没有发生,我希望你能帮助我:) 显示 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.freizeitpark.plus" androi

我对Android非常陌生,但我创建了一个网络视图,它会显示一个wordpress页面,其中包含PDF的下载链接,但当我点击它时,什么都没有发生,我希望你能帮助我:)

显示

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.freizeitpark.plus"
    android:versionCode="1"
    android:versionName="1.2" >

    <uses-sdk android:minSdkVersion="8" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"/>
 <uses-permission android:name="android.permission.CALL_PHONE" />
    <application
        android:icon="@drawable/app_icon"
        android:label="@string/app_name" >
        <activity
            android:configChanges="keyboard|keyboardHidden|orientation"
            android:name="com.google.ads.AdActivity" >
        </activity>
        <activity
            android:label="@string/app_name"
            android:name=".SplashActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
             android:configChanges="touchscreen|keyboardHidden|orientation"
            android:launchMode="singleTop"
            android:name="DroidWebViewActivity" >
        </activity>

    </application>

</manifest>

希望你能帮我这么多!:)

尝试将此添加到您的代码中:(可能在您的
updatewView
方法中)这将拦截任何下载并将其发送到标准android下载管理器

 mWebView.setDownloadListener(new DownloadListener() {
    public void onDownloadStart(String url, String userAgent,
            String contentDisposition, String mimetype,
            long contentLength) {
                Request request = new Request( Uri.parse(url));
                request.allowScanningByMediaScanner();
                request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
                request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "myPDFfile.pdf"); 
                DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
                dm.enqueue(request);        
   }
});

请注意,这将每次使用相同的文件名,因此您的文件可能会被替换,除非您修改代码以使用不同的文件名。

不工作我将其复制到我的主要活动中,但我只会收到错误和应用程序崩溃x.x我对安卓非常陌生,但我无法使其工作:(我打赌原因是调用了
setDestinationNexternalPublicDir
,并且没有请求
WRITE\u EXTERNAL\u STORAGE
权限:
java.lang.SecurityException:需要WRITE\u EXTERNAL\u STORAGE权限才能使用目标文件URI:uid 10406没有android.permission.WRITE\u EXTERNAL\u STORAGE.
来自片段,常量应被引用为
上下文。下载\u SERVICE
“当WebView认为呈现引擎无法处理内容时,setDownloadListener设置侦听器”,来源/感谢:
 mWebView.setDownloadListener(new DownloadListener() {
    public void onDownloadStart(String url, String userAgent,
            String contentDisposition, String mimetype,
            long contentLength) {
                Request request = new Request( Uri.parse(url));
                request.allowScanningByMediaScanner();
                request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
                request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "myPDFfile.pdf"); 
                DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
                dm.enqueue(request);        
   }
});