Android 如何通过Webview下载PDF
我对Android非常陌生,但我创建了一个网络视图,它会显示一个wordpress页面,其中包含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
<?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);
}
});