问题描述: 因为 webview 内嵌样式,而且需求要求扫描二维码,没用 wx 的 jssdk,原因:时间太短,后台不予支持,而且公众号管理员找不到人。。。真是槽点。所以想了个曲线救国的办法,用 uniapp 的 webviewjs 跳转小程序扫一扫,扫完后返回,不推荐,但是没办法, 因为吊起扫一扫返回需要在 onshow 里接参数,而且要刷新webview,就在 onshow 内更改了下 webview 的 src,需要先清除再重新赋值才可以刷新,发现直接清除重新加参数不好用,所以加了个延时器
注:延时器时间不要太短,至少 500ms以上
拍照后发现 webview 页重新执行了 onshow,所以造成了刷新问题, 初次解决:把初始化webview 的 src 赋值放在 onLoad 里,并且需要把webview v-if 去掉,否则安卓某些手机机型会报错 webview 一个页面只能插入一个
后发现更改 webview url 后,回退会需要回退两次,出现新问题, 解决办法: v-if 不能去掉,需要给 webview 外层加一个 v-else, onShow 时,先清除 src,然后定时器重新赋值。发现回退一次成功,并且目前测试没有反馈有的上面 bug。
<template>
<web-view
v-if="targetUrl !== ''"
:src="targetUrl"
@message="msgFn"
@onPostMessage="onPostMessage"
/>
<view v-else></view>
</template>
至此,问题解决
注:此文章为自己解决问题记录所写,可能不适合所有人,不喜勿喷,解决办法可能会参考某些文章,但是时间长了,找不到出处,如有侵权,联系本人,谢谢