最近项目要求修改微信/支付宝支付方式,由客户端集成SDK方式更改为H5支付,既然提出需求,就只好撸代码了,客户端对接H5支付的处理过程中,遇到了一个小问题,问题是:由于微信支付只能在客户端进行,当手机未安装微信客户端的时候,webview会报如下的错误信息:
The webpage at weixin://wap/pay?prepayid=xxxx........ could not be loaded
because: net::ERR_UNKNOWN_URL_SCHEME
也就是在未安装微信客户端的情况下,没有对应的浏览器支持打开weixin://wap/pay?prepayid=xxxx… ,这用户体验肯定差咯,就去找前端商量,前端有没有什么法子能实现判断客户端是否安装微信客户端咯,结果是不能,解决方案是:客户端这边判断,然后写个JS交互接口方法提供前端调用(此方案我认为是最好的法子),但我嫌麻烦,我就提出:前端弄一个简单的提示页面,通过webview.loadUrl的方式加载自定义提示页面,替换无法加载微信内部链接的错误页面,代码如下:
/**是否安装微信客户端,默认安装**/
private boolean isInstalledWeiXin = true;
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
try {