工程狮
工程狮
  • 发布:2025-01-03 23:53
  • 更新:2025-01-13 15:55
  • 阅读:65

【报Bug】nvue 的 vue3 版本的 uni.getWindowInfo 报错

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 13.5 (22G74)

HBuilderX类型: Alpha

HBuilderX版本号: 4.44

手机系统: iOS

手机系统版本号: iOS 16

手机厂商: 苹果

手机机型: iphone 8

页面类型: nvue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

uni.onWindowResize((res)=>{
uni.getSystemInfoSync()
})

操作步骤:

在任意 nvue 调用

预期结果:

正常

实际结果:

报错

bug描述:

在 nvue 中调用 uni.getWindowInfo() 或 uni.getSystemInfoSync()
会报错

TypeError: e.$getAppWebview is not a function. (In 'e.$getAppWebview()', 'e.$getAppWebview' is undefined) __ERROR

之前用 4.28 不会出现这个问题

测试手机:
iphone 8 iOS 16.2
Android 12; ADY-AL10 Build/HUAWEIADY-AL10; wv)

2025-01-03 23:53 负责人:DCloud_UNI_OttoJi 分享
已邀请:
工程狮

工程狮 (作者)

nvue 不维护,也不要搞出错误,老项目怎么办

  • DCloud_UNI_OttoJi

    提供一个空白工程复现问题

    2025-01-09 11:07

  • 工程狮 (作者)

    回复 DCloud_UNI_OttoJi: 要用 uni.preloadPage({

    url: "/pages/homenvue/homenvue",

    success(){

    console.log('页面预载成功')

    },

    fail() {

    console.log('页面预载失败 ')

    }

    }) ,我测试了,预加载的页面才会出现的

    2025-01-10 22:57

  • DCloud_UNI_OttoJi

    回复 工程狮: 给一个复现工程吧,也不麻烦搞一下,提供更多信息,有助于定位和解答你的问题。

    2025-01-11 11:01

  • 工程狮 (作者)

    回复 DCloud_UNI_OttoJi: 给我测试的一个项目功能,在上面问题的附件中

    2025-01-11 23:21

  • DCloud_UNI_OttoJi

    回复 工程狮: 我使用 HBuilderX alpha 4.45 运行你提供的代码到 iphone8,小米 13,代码正常,预加载正常,点击切换时候页面无变化,控制台无报错。你用最新的 alpha 4.45 测试一下

    2025-01-13 11:22

  • DCloud_UNI_OttoJi

    回复 工程狮: 私聊我吧

    2025-01-13 11:25

DCloud_UNI_OttoJi

DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信

更新:经过测试 4.14/4.28 等几个HBuilderX 版本都有此问题,可能是一直都存在,问题出现在使用预加载页面,进入页面,旋转屏幕会出现 webview 查找失败的报错。问题会进一步排查,在此之前,建议避免预加载页面和屏幕旋转等逻辑同时使用。

也可以把逻辑放到 app.vue 里通过事件传递、或者状态管理进行维护


我使用下面代码运行到 vue3+ios 模拟器,点击按钮、旋转屏幕表现正常

<template>  
    <view>  
        <button @click="systeminfo">systeminfo</button>  
    </view>  
</template>  
<script>  
    export default {  

        onLoad() {  
            uni.onWindowResize((res) => {  
                this.systeminfo()  
            })  
        },  
        methods: {  
            systeminfo() {  
                const res = uni.getSystemInfoSync()  
                console.log(111, res);  
            }  
        }  
    }  
</script>  
  • 工程狮 (作者)

    你用的是 nvue 页面吗,vue页面正常

    2025-01-09 11:39

  • DCloud_UNI_OttoJi

    回复 工程狮: 是,你给我一个工程吧,补充报错截图或者报错日志,确保我们测试的是同一个问题

    2025-01-10 11:25

  • DCloud_UNI_OttoJi

    回复 工程狮: 请提供空白复现工程,并说明操作步骤

    2025-01-10 11:25

要回复问题请先登录注册