uni-app vue3版本打包h5后 webview页面跳转报错(uni[e] is not a function)
uni-app vue3版本打包h5后 webview页面跳转报错(uni[e] is not a function)
终结此回复,你看 manifest.json 的摇树优化关闭了没有用,你需要先开启,再关闭 ,保证源码试图里面有这个配置才行
“h5” : {
“optimization” : {
“treeShaking” : {
“enable” : false
}
}
}
如果默认是关闭的,那么源码视图里没有这个配置,必须手动开关一下。 我彻底无语了,这破玩应弄了一天一夜
更多关于uni-app vue3版本打包h5后 webview页面跳转报错(uni[e] is not a function)的实战教程也可以访问 https://www.itying.com/category-93-b0.html
感恩,你把我救了。
打包之后uni下面的那些官方函数已经被摇树优化了,变成了一个具名函数了,不挂载在uni上了。。如果想要使用就需要你自己定义一个变量
// 打包之后uni下面的对象会被替换,所以使用如此方式
const jumps = {
switchTab: uni.switchTab,
navigateTo: uni.navigateTo,
redirectTo: uni.redirectTo,
reLaunch: uni.reLaunch
}
在你自己的页面就可以使用jumps[e]这种了
您好,感谢回复,但刚实验还是不行。 1、首先项目并未勾选启用树摇优化。 2、上述代码是否写在嵌入的html页面中?目前现状是vue页面中的webview嵌入了一个互联网上的html,此html内的js代码调用uni.navigateTo等方法在发行h5后报错。此html页面不会经历编译器,不在树摇优化的作用范围。
我看了下官方示例,是监听的上层页面这样是错误的
,iframe里面是有的
所以说主程序像我刚才那样就行了,iframe里面需要引入uni的js才可以
感谢回复,思路有效,已解决。
回复 3***@qq.com: 碰到了同样问题,能发一下具体是怎么解决的吗,非常感谢
回复 3***@qq.com: 你好,遇到了同样的问题,iframe 肯定是引入了uni js的,在嵌入的HTML 中 也能正常输出uni 对象,但是点击了依然不能跳转,请问你是怎么解决的呢
回复 1***@qq.com: 你好我也是,请问你解决了吗
在uni-app Vue3版本中,打包H5后出现uni[e] is not a function错误,通常是由于Webview组件在H5环境下的兼容性问题导致的。以下是常见原因及解决方案:
-
检查uni对象调用方式
在Vue3中,确保通过uni全局对象调用API,例如使用uni.navigateTo而非直接调用uni[e]。避免在模板或方法中动态拼接API名称。 -
Webview路径处理
H5环境下,Webview的URL需使用绝对路径或完整的网络地址。相对路径可能导致加载失败。示例:uni.navigateTo({ url: '/pages/webview/webview?url=' + encodeURIComponent('https://example.com') }); -
条件编译处理平台差异
使用条件编译隔离H5与小程序/App的代码逻辑:// #ifdef H5 // H5特定处理 window.location.href = 'https://example.com'; // #endif


