我有一个 HTML 文件,如果我在 Android 本机浏览器中打开它,它就会启动一个应用程序,
但是当我尝试在 WebView 中打开相同的应用程序时,它无法启动该应用程序,并且显示“网页不可用”。我认为我的 WebView 无法处理为应用程序定义的方案“my.special.scheme://”。
I read 从浏览器启动 Android 应用程序,但它不涵盖有关从 WebView 启动应用程序的信息。
确实,具有自定义 URI 方案的链接不会自动加载并从 WebView 启动应用程序。
您需要做的是将自定义 WebViewClient 添加到您的 WebView:
webView.setWebViewClient(new CustomWebViewClient());
然后在shouldOverrideUrlLoading()中添加以下代码:
public boolean shouldOverrideUrlLoading(final WebView webView, final String url) {
if (url.startsWith("my.special.scheme://")) {
final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
// The following flags launch the app outside the current app
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
activity.startActivity(intent);
return true;
}
return false;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)