2***@qq.com
2***@qq.com
  • 发布:2024-09-29 10:23
  • 更新:2024-10-16 17:46
  • 阅读:640

【报Bug】4.28版本无法调用 getAppWebview

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 4.28

手机系统: Android

手机系统版本号: Android 15

手机厂商: 小米

手机机型: 红米k40

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
console.log("this.$root",this.$root)  
console.log("this.$scope",this.$root.$scope)  
console.log("this.$scope.$getAppWebview",this.$root.$scope.$getAppWebview)

操作步骤:

console.log("this.$root",this.$root)
console.log("this.$scope",this.$root.$scope)
console.log("this.$scope.$getAppWebview",this.$root.$scope.$getAppWebview)

预期结果:

正常打印

实际结果:

TypeError: Cannot read property '$getAppWebview' of undefined

bug描述:

4.28版本无法获取调 getAppWebview,回退版本4.24就正常
更新一下 标准基座没问题,自定义基座有问题

2024-09-29 10:23 负责人:无 分享
已邀请:

最佳回复

DCloud

DCloud

HBuilderX 4.29.2024093009 已修复。

  • 2***@qq.com (作者)

    4.29还是不行

    2024-10-07 10:46

  • BFC

    回复 2***@qq.com: 收到, 我看下

    2024-10-09 11:33

  • BFC

    回复 2***@qq.com: 我这边测试HBuilderX 4.29.2024093009 正式版可以正常用

    2024-10-09 11:52

  • BFC

    回复 2***@qq.com: 你要不提供一下demo工程

    2024-10-09 11:54

BFC

BFC

你好, 我这边用vue2和vue3 的自定义基座测试都正常 ,提供一下复现工程

  • 2***@qq.com (作者)

    这边又测了一下 确定是页面是 setup语法的情况下用不了

    2024-09-29 13:21

  • 2***@qq.com (作者)

    用这个的是一个组件准确的讲是setup语法下组件中无法调用

    2024-09-29 13:24

  • BFC

    回复 2***@qq.com: 提供一下代码片段, setup 你是如何用this的

    2024-09-29 13:28

  • 2***@qq.com (作者)

    回复 BFC: 页面用的是setup, 组件还是vue2的写法,组件中使用的this

    2024-09-29 13:31

  • BFC

    回复 2***@qq.com: 好的, 我测试一下

    2024-09-29 13:34

BFC

BFC

已确认bug, 感谢反馈

  • 2***@qq.com (作者)

    这边测试了一下4.29还是不行

    2024-10-08 09:34

2***@qq.com

2***@qq.com

const pages = getCurrentPages();
if (pages.length > 0) {
const currentPage = pages[pages.length - 1];
const currentWebview = currentPage.$getAppWebview();
if (currentWebview) {
currentWebview.setStyle({
popGesture: 'none', // 取消手势返回
});
}else {
console.error('currentWebview 不存在');
}
}

暂时这样解决 不知道会不会有问题

m***@163.com

m***@163.com

获取到webview实例后,无法使用evalJs,怎么弄一下能解决

const pages = getCurrentPages()  
                const currentPage = pages[pages.length - 1];  
                const currentWebview = currentPage.$getAppWebview()  
                console.info(currentWebview.children()[0].evalJs)  

要回复问题请先登录注册