前言
先说一下需求,今天想做一个功能,跳转url之后就可以打开qq加群,原先想的很简单,只要将qq的加群二维码转换成url之后传给webview,原本以为这样就可以了(因为把链接复制到浏览器之后就是这样的),结果尝试之后却发现无法打开。在酷安开发者交流群询问了之后得到了如下的解决方案。(真的不是再给基安打广告)
解决方案
mWebview.setWebViewClient(new WebViewClient() {
//设置webview是否可以发开外链
@Override
public boolean shouldOverrideUrlLoading(WebView webView, String url) {
if (!url.startsWith("http")) {
toIntent(url);
return true;
}
return super.shouldOverrideUrlLoading(webView, url);
}
});
toIntent()函数
private void toIntent(String url) {
try {
Toast.makeText(mContext, "尝试打开外部应用", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
} catch (Exception e) {
Toasty.warning(mContext, "您还未安装客户端", Toast.LENGTH_SHORT).show();
}
}
这样就可以实现通过webview访问外部程序了
网友评论