Android WebView触发支付宝支付页面访问日志


Android,触发支付宝,支付页面访,28圈网页版,28圈网页版官网,28圈H5网页版,28圈app官网进入


在最新的项目需求中,我们需要实现一个功能,即接收一个支付宝二维码支付URL,并通过webview打开对应的支付宝app支付页面。此前,我在网上找到了一段代码,但在适配过程中遇到了问题。于是,我深入研究了这个问题,并在此记录下来。


测试过的机型包括红米1s(4.4.4)、华为TAG-AL100(5.1)、华为KNT-AL20(6.0)和exus6p(7.1.1)。在接收到的支付链接方面,具体规则可以参考蚂蚁金服的文档。


🔒

在查阅了多篇类似的文章后,我尝试了以下主要代码:


然而,不幸的是,我手中的Nexus6P系统是7.1.1版本,运行时未能成功跳转,一直停留在网页中。通过使用断点chrome://inspect功能,我发现最终的URL是被encode过的,这也是为什么条件不匹配的原因。我尝试了UrlDecode进行判断,但依然无效。然后,我尝试单独判断两个关键字,但调用也不成功。在网上未能找到现成的方法,于是按照上文提到的思路,我自行跟踪了URL跳转执行情况:


我分别测试了方法1和方法2,并对四台机子进行了测试。结果显示:


- 对于原始URLOri,第一次加载返回的urlFirst和第二次加载返回的urlHttps,由于URL编码的原因,判断会失败。


- 再次调用时,对于4.4/5.1/6.0机子,继续加载urlHttps会返回一个intent,通过解析它获取到targetIntent,可以成功调起支付宝App;而对于Nexus6p 7.1.1系统,返回的url依然是那个urlHttps,无法满足条件,也无法进行解析,28圈H5网页版


- 如果通过分开判断两个关键字来解析intent,4.4/5.1机子的webview无法正常跳转,而6.0/7.1.1的机子则正常,28圈网页版官网


综上所述,在6.0及以上机子中,可以直接对支付宝服务器返回的https URL进行解析并调起支付宝app跳转到指定的支付页面。而对于之前的机型,则直接通过webview对https URL进行加载,会返回一个intent URL再进行跳转。


此外,从浏览器或Webview中唤醒APP的方法,可以在浏览器中点击链接启动App AS2.3直接提供界面操作,非常方便。官网上的Android Intents with Chrome也解释得很清楚,在Intent中需要指定目标Activity的Component属性,添加Intent Filter,当然还要指定跳转URL的host/scheme等值。例如,可以在html页面中设置a标签指定其链接为intent://,点击启动应用。在Activity中,可以通过以下方式来获取附加参数:


28圈app官网进入  28圈网页版  28圈网页版官网
#Android #触发支付宝 #支付页面访
最新产品: