一个vue 中循环webview即可复现
- 发布:2024-11-12 18:28
- 更新:2024-11-12 18:28
- 阅读:30
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 11 家庭中文版 23H2
HBuilderX类型: 正式
HBuilderX版本号: 4.29
手机系统: Android
手机系统版本号: Android 14
手机厂商: 小米
手机机型: Redmi Note 13 5G 必现
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
1、多个web-view循环时,id不一样
2、:webview-styles="webviewStyles(index)" 当延迟加载时【即:loading 变更为true】,则index 为当前;并且创建的webView 宽高按照当前执行;
3、接收消息@message 回调时,能否在EventHandler中添加属性 标识那个web-view 即id;
1、多个web-view循环时,id不一样
2、:webview-styles="webviewStyles(index)" 当延迟加载时【即:loading 变更为true】,则index 为当前;并且创建的webView 宽高按照当前执行;
3、接收消息@message 回调时,能否在EventHandler中添加属性 标识那个web-view 即id;
实际结果:
1、多个web-view循环时,通过console.log( this.$scope.$getAppWebview().children() ) 查看发现所有的id都一样【致命bug 导致我无法删除对应Webview】
2、多个web-view循环时,@message="receiveMessage($event,index)", 此时 index永远都时0;
3、:webview-styles="webviewStyles(index)" 当延迟加载时【即:loading 变更为true】,则index 同上;并且创建的webView 宽高按照上一个执行;
4、接收消息@message 回调时,我无法知道时那个webView 进行回调的。
1、多个web-view循环时,通过console.log( this.$scope.$getAppWebview().children() ) 查看发现所有的id都一样【致命bug 导致我无法删除对应Webview】
2、多个web-view循环时,@message="receiveMessage($event,index)", 此时 index永远都时0;
3、:webview-styles="webviewStyles(index)" 当延迟加载时【即:loading 变更为true】,则index 同上;并且创建的webView 宽高按照上一个执行;
4、接收消息@message 回调时,我无法知道时那个webView 进行回调的。
bug描述:
问题:
1、多个web-view循环时,通过console.log( this.$scope.$getAppWebview().children() ) 查看发现所有的id都一样【致命bug 导致我无法删除对应Webview】
2、多个web-view循环时,@message="receiveMessage($event,index)", 此时 index永远都时0;
3、:webview-styles="webviewStyles(index)" 当延迟加载时【即:loading 变更为true】,则index 同上;并且创建的webView 宽高按照上一个执行;
4、接收消息@message 回调时,能否在EventHandler中添加属性 标识那个web-view 即id;
使用场景:
我们需要对接第三方的界面,我们通过接口获取到:首页、购物车、我的等界面,我们只能通过webView 打开相应的界面,他们通过uni.postMessage发送消息获取定位、图片等信息。
附件为我的原代码,因为方便你们审查,整理了一个案例。