Android Webview未下载PDF

Android Webview未下载PDF,android,pdf,android-webview,Android,Pdf,Android Webview,我无法在我的应用程序的网络视图中下载PDF文件 我已将webview放置在我的android应用程序中,并访问PDF的链接。在iOS上,同样的设置会下载PDF,但在Android上什么都不会发生。我已经在浏览器中测试了PDF链接,以确保其有效。它也适用于iOS 此外,webview将显示一个网页(如google),但不会下载PDF。我已经在设备上安装了PDF阅读器 我已确保我的清单包含:uses permission android:name=“android.permission.INTERN

我无法在我的应用程序的网络视图中下载PDF文件

我已将webview放置在我的android应用程序中,并访问PDF的链接。在iOS上,同样的设置会下载PDF,但在Android上什么都不会发生。我已经在浏览器中测试了PDF链接,以确保其有效。它也适用于iOS

此外,webview将显示一个网页(如google),但不会下载PDF。我已经在设备上安装了PDF阅读器

我已确保我的清单包含:uses permission android:name=“android.permission.INTERNET”

我在谷歌上搜索了很多次,发现其他人以前也有过这个问题,但解决方案似乎总是过于复杂或具有侵入性(在SELinx中更改权限?)。这应该是一个简单明了的常见任务,所以我肯定错过了一些明显的东西

我卡住了。谢谢你的帮助

以下是我的webview代码:

public class WebActivity extends MenuActivity {

public static final String TARGET_URL = "com.hawthornemackenzie.congressfoundationandroid.target_url";
private String mTargetURLString;
public WebView mWebView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_web);
    mTargetURLString = getIntent().getStringExtra(TARGET_URL);
    mWebView = (WebView) findViewById(R.id.webView);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.setWebViewClient(new WebViewClient());

    // confirm the proper url is being pulled out of the intent...
    // An example url is: http://www.voorjaarsdagen.eu/media/com_vjd/vjd_abstracts/2017/A17206.pdf
    // Uncomment to test it directly:  mTargetURLString = "http://www.voorjaarsdagen.eu/media/com_vjd/vjd_abstracts/2017/A17206.pdf" <-- doesn't work, but URL in browser works
    // Uncomment to test it with google mTargetURLString = "http://www.google.com";   <-- works

    Log.d("\n\n\n LOG target url:", mTargetURLString);
    Toast.makeText(this, mTargetURLString, Toast.LENGTH_LONG).show();

    mWebView.loadUrl(mTargetURLString);

}

WebView
无法单独显示PDF。如果您的目标只是下载PDF,请使用HTTP客户端API,如
HttpURLConnection
,然后通过
ACTION\u视图将其交给PDF查看器。或者,考虑<代码>下载管理器> /代码>谢谢CommonsWare!这让我朝着正确的方向开始。我有一个隧道式的愿景,那就是它将成为WebView。在您的帮助下,答案很简单:Uri=Uri.parse(ApplicationSettings.terms\uurl);意图=新意图(Intent.ACTION\u视图,uri);星触觉(意图);——这就是启动浏览器并加载pdf所需的全部代码。再次感谢。请注意,您的解决方案将仅限于处理
http
https
方案的PDF查看器。一些PDF查看器会认为其他应用程序(例如浏览器)可以处理该问题,并且只支持
文件
内容
本身。如果这些只是服务条款或其他简单的内容,那么您只需将它们转换为HTML并使用
WebView
或Web浏览器,就可以获得更好的兼容性。特别是,将术语打包为资产,并使用
WebView
显示它们,可以防止由于缺乏连接而出现任何问题。非常感谢。在这种情况下,我知道内容提供商将只使用http/s,所以我们可以开始了。但是谢谢你的提醒,因为我相信我会在下一个应用程序中做更多这类事情。
    04-14 14:00:34.639 1259-1259/? E/SELinux: avc:  denied  { find } for service=batteryproperties scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:healthd_service:s0 tclass=service_manager
04-14 14:00:34.771 30309-30434/com.hawthornemackenzie.congressfoundationandroid W/chromium: [WARNING:data_reduction_proxy_config.cc(423)] SPDY proxy OFF at startup
04-14 14:00:34.779 30309-30325/com.hawthornemackenzie.congressfoundationandroid D/FA: Connected to remote service
04-14 14:00:34.812 1260-2994/? D/gralloc_ranchu: gralloc_alloc: format 2 and usage 0x933 imply creation of host color buffer
04-14 14:00:34.926 1929-2055/system_process I/ActivityManager: Displayed com.hawthornemackenzie.congressfoundationandroid/.WebActivity: +541ms

[ 04-14 14:00:34.937 30309:30454 D/         ]
HostConnection::get() New Host Connection established 0xa13a5d80, tid 30454
04-14 14:00:34.942 1260-1293/? D/gralloc_ranchu: gralloc_alloc: format 2 and usage 0x933 imply creation of host color buffer
04-14 14:00:35.079 1260-1293/? D/gralloc_ranchu: gralloc_alloc: format 1 and usage 0x933 imply creation of host color buffer
04-14 14:00:35.183 1260-1260/? W/SurfaceFlinger: couldn't log to binary event log: overflow.
04-14 14:00:35.560 30309-30309/com.hawthornemackenzie.congressfoundationandroid W/BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 30309
04-14 14:01:00.129 1260-1327/? D/hwcomposer: hw_composer sent 210 syncs in 60s
04-14 14:02:00.062 1260-1327/? D/hwcomposer: hw_composer sent 2 syncs in 60s