Android集成支付宝,H5支付页面点击无反应

前段时间项目需求,集成了支付宝手机支付功能,集成过程中一切顺利,禁不住感叹大厂提供的东西就是给力。然而今天测试拿手机过来,跟我说手机未安装支付宝的时候,使用H5支付某些按钮点击无效。然后我去看了一下,还真是,但是奇怪的是部分手机没有问题,小部分手机出现了这个情况,同样一套代码,怎么会有两种区别这么大的结果。第一反应是想是不是支付宝的包出问题了,然后就去支付宝论坛查阅,并没用招到解决的方案。

操作如上图所示,

情况1:当点击返回按钮时,会有个确认退出的提示框,测试点击"否"是有效的,但是点击"是",则没用一点相应。

情况2:当输入手机号结束后,点击下一步,也是任何相应都没有。

最后,我联系上了支付宝的技术支持工程师,加了钉钉来一起解决问题,当时,他给我抛了这样一个链接https://tech.open.alipay.com/support/knowledge/index.htm?knowledgeId=201602156692&categoryId=24120#/?_k=p616ot,链接中给出了两个方案,如下


问题描述与我当前碰到的情况相当吻合,我立即尝试了第一种方案,但是并没有效果。比较失望的否定了方案一,然后看了下方案二,要调用一个webview的方法,当时第一反应是比较懵逼的,明明调用的是支付宝的H5Activity,WebView对象再那页面里,我如何去拿到这个WebView的实例呢?难道要集成支付宝提供的H5Activity去做相关的操作嘛?但是这样操作的话,AndroidManifest.xml文件中的Activity配置就会对应不上啊。就在万分纠结的时候,我重新阅读了方案二,一句话敲醒了我,

pauseTimers是一个全局方法

全局方法说明是任何WebView实例去调用都能生效的,那等于说我随便创建一个WebView对象调用一下resumeTimers方法即可?没错,就是这么简单,



出现这个问题的原因是因为我的项目中用到了Activity中使用WebView 的情况,然后我对这样的用法进行了封装,当Activity中有WebView的时候,我会在Activity生命周期的onResume/onPause中对webview对象做相应的启动/暂停操作,提高app执行性能。代码如下

离开这样的Activity的时候会调用WebView的pauseTimers方法,导致全局生效,因此使得支付宝H5支付页面的js无法正常加载运行。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值