Paste_Image.png问题描述:App中嵌入h5页面,调起app native之后返回h5页面 此时刷新页面(如支付点击已完成未完成)注入的jsBridge失效 流程如下图:
- 在第0步中app创建webView并且注入jsBridge(用于h5 js调起native方法)
- 在第1步中调用jsBridge调起收银台的方法 唤起一个native页面
- 在第2步中无论支付成功失败,点击返回至订单详情,出现弹框确认是否支付完成
- 在第3步中点击完成按钮 刷新页面 更新订单状态
导致结果: jsBridge失效 如果没有支付完成的话 再次支付 无法调起收银台
提出解决方案(两种)
第一种
- 在返回至H5页面是 点击调用window.location.reload()方法
- app去抓取reload()方法
- 调用app的reload方法(销毁原有webView 创建新的webView 注入JsBridge)
第二种
a. jsBridge提供reload方法(做的事件就是reload整个webView,即上面说的ios自刷新的功能)
b. 在返回至H5页面是 点击调用jsBridge.reload()方法
如下图所示:
Paste_Image.png结论:画出流程图很明显第二种方案要优秀一点 根据目的来选择解决方案