Android 随记 记一次乌龙bug

记得有这么一天,由于项目中有支付流程,native接了H5,需要跳转至微信和支付宝支付,并且由原生Webview承载。

有天晚上突然测试提了个问题:

有两个小米手机,系统版本6.0.1,MIUI版本未知,打开微信支付的时候报了个

出现net::ERR_UNKNOWN_URL_SCHEME,并且说其他手机都没有问题。

好嘛,慌了,立马把所有Android 开发拉了个群 ,然后开始各种猜测:

1.前端给的链接不对,不支持跳转

2.小米机型经过深度定制,有可能是webView的兼容性问题

3.schema不支持跳转。

好了 赶紧排查问题。

1.发现我们的跳转是

WebViewClient webViewClient =newWebViewClient() {

@Override

public

boolean

shouldOverrideUrlLoading(WebView wv, String url){

if(url ==null)

returnfalse;

try{

if(url.startsWith("weixin://") || url.startsWith("alipays://") || url.startsWith("mailto://") || url.startsWith("tel://")//其他自定义的scheme) {

 Intent intent =newIntent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(intent);

returntrue; } 

 }catch(Exception e)

 {//防止crash (如果手机上没有安装处理某个scheme开头的url的APP, 会导致crash)returnfalse;

 }//处理http和https开头的url

wv.loadUrl(url);

returntrue; }};

很完美呀。但是为什么会出现这个呢 ,难道真的是MIUI经过深度定制,于是又拿了一个小米手机 发现没有问题了 没有问题了!一头雾水!

然后准备debug 代码,但是发现小米的debug 包不能安装,需要登录小米账号密码什么的,打release包又不能断点调试好烦!

于是就拿自己的测试机(vivo)去支付莫名其妙也出现了 同样的错误,这就证明了跟机型无关!

那么问题来了到底是什么问题,哈哈 结果来了  你的手机没装微信!没错,就是没装微信!微信是没有网页支付的,所有打不开喽!

哈哈 解决方案:

1.判断有没有安装微信,没有则不显示微信支付入口

2.唤起微信支付时判断有没有微信,没有则提示安装下载

你可能感兴趣的:(Android 随记 记一次乌龙bug)