说明
针对目前商户反馈如下问题
1、app内嵌WebView,用户手机安装了支付宝客户端支付流程没有问题,没有安装支付宝客户端,部分机型调起支付宝h5页面支付,在输入完账号和密码后,点击"下一步"没有反应。点击返回弹出"是否退出"对话框,点击"是"没有反应,页面不关闭等现象。
2、支付宝输入密码支付后停留在"付款结果页" ,并且显示"支付确认中请稍后",debug没有收到任何回调消息等场景
常见机型:红米note1、小米M6、三星s4~s8、oppo R9m、vivo x3v~x7等
报错截图
原因
1、开启硬件加速同时windowbackground为null
2、调用了mWebView.pauseTimers()
3、跳转js被拦截
解决方案
方案一:
1).针对支付宝支付\授权的Activity设置`android:hardwareAccelerated="false"
2).windowbackground设置一个颜色,使用transparent也可以
代码示例
<activity android:name="com.alipay.sdk.app.H5PayActivity" android:hardwareAccelerated="false" android:configChanges="orientation|keyboardHidden|navigation|screenSize" android:exported="false" android:screenOrientation="behind" android:windowSoftInputMode="adjustResize|stateHidden" > activity> <activity android:name="com.alipay.sdk.app.H5AuthActivity" android:hardwareAccelerated="false" android:configChanges="orientation|keyboardHidden|navigation" android:exported="false" android:screenOrientation="behind" android:windowSoftInputMode="adjustResize|stateHidden" > activity>
方案二:
pauseTimers是一个全局方法,会停止所有js的执行,所以方法有以下两种,任取其一:
1).不要使用pauseTimers()
2).在进入支付功能前,调用resumeTimers()