uni.onWindowResize((res)=>{
uni.getSystemInfoSync()
})
- 发布:2025-01-03 23:53
- 更新:2025-01-13 15:55
- 阅读:65
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 13.5 (22G74)
HBuilderX类型: Alpha
HBuilderX版本号: 4.44
手机系统: iOS
手机系统版本号: iOS 16
手机厂商: 苹果
手机机型: iphone 8
页面类型: nvue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
在任意 nvue 调用
在任意 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)
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>
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