美文网首页
设置webview允许发开外部应用

设置webview允许发开外部应用

作者: 雇个城管打天下 | 来源:发表于2018-04-24 16:51 被阅读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访问外部程序了

    相关文章

      网友评论

          本文标题:设置webview允许发开外部应用

          本文链接:https://www.haomeiwen.com/subject/mxvjlftx.html