app内嵌WebView调用H5支付/授权点击按钮无反应之解决方案

简介: 说明      针对目前商户反馈如下问题1、app内嵌WebView,用户手机安装了支付宝客户端支付流程没有问题,没有安装支付宝客户端,部分机型调起支付宝h5页面支付,在输入完账号和密码后,点击"下一步"没有反应。

说明

     针对目前商户反馈如下问题

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()


目录
相关文章
|
存储 Android开发
安卓app,MediaPlayer播放本地音频 | 按钮控制播放和停止
在Jetpack Compose中,不直接操作原生Android组件如`Button`和`MediaPlayer`,而是使用Compose UI构建器定义界面并结合ViewModel管理音频播放逻辑。以下示例展示如何播放本地音频并用按钮控制播放/停止:创建一个`AudioPlayerViewModel`管理`MediaPlayer`实例和播放状态,然后在Compose UI中使用`Button`根据`isPlaying`状态控制播放。记得在`MainActivity`设置Compose UI,并处理相关依赖和权限。
|
安全 JavaScript 前端开发
kotlin开发安卓app,JetPack Compose框架,给webview新增一个按钮,点击刷新网页
在Kotlin中开发Android应用,使用Jetpack Compose框架时,可以通过添加一个按钮到TopAppBar来实现WebView页面的刷新功能。按钮位于右上角,点击后调用`webViewState?.reload()`来刷新网页内容。以下是代码摘要:
|
移动开发 前端开发 JavaScript
|
Web App开发 数据采集 移动开发
开发uniapp过程中对app、微信小程序与h5的webview调试
开发uniapp过程中对app、微信小程序与h5的webview调试
2962 1
|
小程序
uni-app微信小程序隐藏左上角返回按钮
uni-app微信小程序隐藏左上角返回按钮
2194 1
|
Android开发 iOS开发 开发者
点击APP的应用程序图标后,发生了什么
点击APP的应用程序图标后,发生了什么
483 1
|
JSON 数据格式
点击app系统消息打开app并进入指定页面
点击app系统消息打开app并进入指定页面
354 0
|
移动开发 前端开发 程序员
支付功能在app中的实现及支付功能模块化调用流程图
支付功能在app中的实现及支付功能模块化调用流程图
287 0
uni-app 图标按钮组件封装(4.2)
uni-app 图标按钮组件封装(4.2)
408 0
|
Web App开发 Android开发
App自动化查看webview的元素定位信息
App自动化查看webview的元素定位信息
505 0