如何在Android上已注册的应用程序中的WebView中启动Web链接?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在Android上已注册的应用程序中的WebView中启动Web链接?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2190字,纯文字阅读大概需要4分钟。
内容图文
![如何在Android上已注册的应用程序中的WebView中启动Web链接?](/upload/InfoBanner/zyjiaocheng/683/c7963765bc484413aa50c3fabd00f9d1.jpg)
在我的Android应用中,我有一个WebView.我希望在WebView中单击每个链接以在设备上启动注册的应用程序(如果有),否则请在外部浏览器中打开.例如,如果用户在WebView中单击Facebook页面链接,则它应启动Facebook应用程序(如果在设备上注册了facebook以处理facebook链接).如果未注册任何应用程序,则应启动外部浏览器(即,不应将页面加载到同一WebView中).
当前(默认情况下),WebView只会在其内部加载WebView中单击的任何链接.
我意识到我需要重写shouldOverrideUrlLoading来拦截那些链接点击:
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// what should go here to trigger the registered app or fall back to external browser for all link clicks in the WebView?
}
});
我还查看了意图过滤器,但这似乎与该要求相反(意图过滤器似乎是我注册我的android应用程序以处理其他地方的网络点击的一种方式).
更新1:
我不想拦截任何特定的主机名或方案-我希望在Web视图中单击的每个链接都被“委派”到android,其中android决定是否启动注册的应用,并弹出供用户选择的选项在哪个应用程序中打开或在网络浏览器中打开,具体取决于用户设置.
具体来说,如果我单击指向https://www.facebook.com/blah的链接,则它将在Facebook应用程序中启动,并带我到那里的空白页面.
解决方法:
该修复仅涉及将shouldOverrideUrlLoading处理为true,如果该URL不在我自己的应用程序中,则返回true.返回true时,它会根据配置的上下文启动注册的应用程序或应用程序选择器对话框或浏览器.
mWebview.setWebViewClient(new WebViewClient()
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
boolean isLocalUrl = false;
try {
URL givenUrl = new URL(url);
String host = givenUrl.getHost();
if(host.contains("myapp.com"))
isLocalUrl = true;
} catch (MalformedURLException e) {
}
if (isLocalUrl)
return super.shouldOverrideUrlLoading(view, url);
else
{
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
}
}
}
我还意识到,Android的当前状态(我在基于Android Kitkat的Xiaomi Mi 4的MIUI 7上进行了测试,但论坛表明,至少对于大多数棉花糖之前的android来说,这大致上是正确的),其中存在指向Facebook页面的链接WebView无法在Facebook应用程序中打开.它也没有给用户选择在Facebook应用程序中打开的选项.以前可以使用,但是现在不能使用.如果使用上述代码,它将始终在浏览器中启动.因此,发生了许多误解.它可以与其他站点(推特,法定人数等)一起使用.
内容总结
以上是互联网集市为您收集整理的如何在Android上已注册的应用程序中的WebView中启动Web链接?全部内容,希望文章能够帮你解决如何在Android上已注册的应用程序中的WebView中启动Web链接?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。