解决android4.4.4手机不能正常调起微信支付问题

解决Android手机系统版本4.4.4不能正常调起微信H5支付的问题

为了解决在android手机系统版本4.4.4调起微信H5支付的问题,找了好多文章都没有正常解决,遇到这篇文章,nice,你的问题解决了。

废话不多说直接上代码:

private void initView() {
    webView = (WebView) findViewById(RUtil.getId(this, "webview"));
    WebSettings settings = webView.getSettings();
    settings.setJavaScriptEnabled(true);
    settings.setAppCacheEnabled(false);
    settings.setDefaultTextEncodingName("UTF-8");
    settings.setJavaScriptCanOpenWindowsAutomatically(true);
    webView.setWebViewClient(new WebViewClient() {
        @Override
        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
            //可以让webview处理https请求
            handler.proceed();
        }

		@Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (url.startsWith("weixin://wap/pay?")) {
                Intent intent = new Intent();
                intent.setAction(Intent.ACTION_VIEW);
                intent.setData(Uri.parse(url));
                startActivity(intent);
                return true;
            } else {
            //敲黑板,敲黑板,敲黑板
                if (("4.4.3".equals(android.os.Build.VERSION.RELEASE))
                        || ("4.4.4".equals(android.os.Build.VERSION.RELEASE))) {
                        //敲黑板
                    return false;
                } else {
                    Map extraHeaders = new HashMap<>();
                    extraHeaders.put("Referer", "http://www.toutiao.com");
                    webView.loadUrl(mWeb_url, extraHeaders);
                }
            }
            return true;
        }
    });

    if (("4.4.3".equals(android.os.Build.VERSION.RELEASE))
            || ("4.4.4".equals(android.os.Build.VERSION.RELEASE))) {
        //兼容这两个版本设置referer无效的问题
        webView.loadDataWithBaseURL("http://www.toutiao.com",
                "",
                "text/html", "utf-8", null);
    } else {
        Map extraHeaders = new HashMap<>();
        extraHeaders.put("Referer", "http://www.toutiao.com");
        webView.loadUrl(mWeb_url, extraHeaders);
    }

}

你可能感兴趣的:(微信h5支付,android4.4.4,webview,referer)