上一篇文章我们解决了一个时而调得起微信H5支付,时而调不起(显示:系统繁忙,请稍后重试!)的问题,那这次我们再来解决一个因为手机系统而拉不起微信H5支付问题!
上一篇文章中我们有用到下面的这个Referer,这个大家应该都还记得,但是这个在android 4.4.3和4.4.4系统上是失效的,导致shouldOverrideUrlLoading这个方法无法回调,所以就无法拦截到"weixin:..wap/pay?",自然而然就拉不起微信的H5支付页面,这个可能跟WebView的内核版本有关。
Map<String, String> extraHeaders = new HashMap<String, String>();
// 此处连接为申请微信H5支付的时候填写的域名
extraHeaders.put("Referer", "http://wxpay.wxutil.com");
view.loadUrl(url, extraHeaders);
上面知道了原因,接下来我们就要找解决方案了,这里我直接上代码了
webView = findViewById(R.id.webview);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDefaultTextEncodingName("UTF-8");
webView.getSettings().setJavaScriptCanOpenWi