gpt4 book ai didi

android – 如何检查webview是否可用?

转载 作者:太空狗 更新时间:2023-10-29 16:28:49 25 4
gpt4 key购买 nike

有没有办法检查设备上是否有 webview?

背景:如果我添加 <uses-feature android:name="android.software.webview"/>根据 list ,Google Play 上支持的设备数量从超过 12,000 台下降到不到 6,000 台。所以我添加了 android:required="false"到这个功能。如果 webview 可用,网站应显示在应用程序内,否则将在默认浏览器中启动:

String mUrl = "http://www.example.com";
if (*** WHAT TO PUT HERE? ***) {
WebView webview = (WebView) findViewById(R.id.webView);
if (Build.VERSION.SDK_INT >= 24) {
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(request.toString());
return false;
}
});
} else {
webview.setWebViewClient(new WebViewClient() {
@SuppressWarnings("deprecation")
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
});
}
webview.loadUrl(mUrl);
} else {
Uri uri = Uri.parse(mUrl);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}

编辑(使事情清楚):<uses-permission android:name="android.permission.INTERNET" />是(并且一直是) list 的一部分。只是增加了<uses-feature android:name="android.software.webview" />这会导致支持的设备下降。

这里有人遇到同样的问题:https://issuetracker.google.com/issues/37035282(不幸的是没有回答)

最佳答案

虽然@vsatkh 指出不一定需要声明此功能,但您可以通过以下方式检查设备的功能兼容性:

getPackageManager().hasSystemFeature("android.software.webview")

此方法返回 true 或 false。

关于 Google Play 过滤的一些额外信息:Google Play 仅根据 <uses-feature> 过滤支持的设备 list 中声明的​​元素。 <uses-permission>元素不会影响 Google Play 的过滤,除非它们暗示了一项功能。 android.permission.INTERNET并不暗示任何功能。此处列出了暗示功能的权限: https://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions

关于android – 如何检查webview是否可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43917214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com