设置webview允许发开外部应用

前言

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容