Android:WebView调用支付宝,提示ERR_UNKNOWN_URL_SCHEME 解决方法

首先我们的webview需要设置一些基本的参数信息,例如支持js等

// 设置WebView属性,能够执行Javascript脚本
webview.getSettings().setJavaScriptEnabled(true);
...

ios端开发是能够直接调起手机支付宝,但是android端不能,根本原因我认为android启动app的方式是通过intent的方式,因此,我们需要做的是在webview加载时,获取支付宝返回的url,以此url作为我们启动支付宝支付view的url信息

webview.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
 //不要加上下面注释掉的这句代码,会导致web界面报错
                // view.loadUrl(url);
                if (url.startsWith("http:") || url.startsWith("https:")) {
                    return false;
                }
//请务必使用try、catch 因为该处返回的url可能为无效url或者手机没有安转支付宝导致webview闪退
                try {
//通过意图调起支付宝
                    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                    startActivity(intent);
                } catch (Exception e) {
                }
                return true;
            }
        });
    }

你可能感兴趣的:(Android:WebView调用支付宝,提示ERR_UNKNOWN_URL_SCHEME 解决方法)