设置webview允许发开外部应用

2018-04-24  本文已影响39人  雇个城管打天下

前言

先说一下需求,今天想做一个功能,跳转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访问外部程序了

上一篇下一篇

猜你喜欢

热点阅读