uni-app IOS打包后 renderjs不生效
uni-app IOS打包后 renderjs不生效
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | Windows 10 专业版 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
PC开发环境操作系统版本号:Windows 10 专业版
HBuilderX类型:正式
HBuilderX版本号:3.2.9
手机系统:iOS
手机系统版本号:iOS 14
手机厂商:苹果
手机机型:iphone8
页面类型:vue
打包方式:离线
示例代码:
``` js
<script module="test" lang="renderjs">
export default {
data() {
return {
instance : null,
}
},
mounted() {
document.getElementById("interfaceContent").addEventListener("click", (e)=> {
if (this.instance == null) {
return;
}
console.log(e.target.classList)
let classList = e.target.classList;
if (classList == "domain") { // 打开链接
this.instance.callMethod('onClickDomain', {
link: e.target.innerText
});
}
});
},
methods: {
onInterfaceClick (e,ownerInstance) {
this.instance = ownerInstance;
},
}
}
</script>
操作步骤: 任意页面 renderjs 都不生效
预期结果: 正常可以监听点击
实际结果: 这是一个简单的页面 其他页面也不能使用
bug描述: 本地调试 renderjs 可以使用 , 但是离线打包后 renderjs 不执行 ,无法使用
更多关于uni-app IOS打包后 renderjs不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
Vue3.0 项目
使用HX内置基座是否正常?
是正常的,但打包出来以后就不正常了,很多功能在基座运行是没有问题的,但打包完以后就不行,包括静态资源也是部分没导出
this.instance.callMethod 没有相应
回复 2***@qq.com: 保证离线打包使用的sdk版本和HX版本一致
回复 DCloud_iOS_XHY: 你好 确认版本是一致的 并且打包后打印出来 this.instance.callMethod 该方法是存在的但是没有相应
回复 n***@126.com: 是3.2.9 版本? 离线SDK的库和资源文件 都全部替换的吗 而不是部分替换的吗?
回复 天生DR: 是的 3.2.9版本 都替换了 标注的注意事项 也都进行了比对 资源文件指的是哪些
回复 n***@126.com: 资源文件就是 Bundles 下的一些js文件
回复 天生DR: 有更新
这是一个典型的离线打包配置问题。在 iOS 离线打包环境下,renderjs 不生效通常是因为缺少必要的配置。
核心原因是:iOS 离线打包时,默认的 WebView 配置可能禁用了 JavaScript 执行或存在安全限制。
解决方案:
- 检查 manifest.json 配置:
确保在
manifest.json的app-plus->distribute->ios节点下,已正确配置 WebView 相关设置:
{
"app-plus": {
"distribute": {
"ios": {
"webview": {
"allowsInlineMediaPlayback": true,
"javaScriptEnabled": true,
"javaScriptCanOpenWindowsAutomatically": true
}
}
}
}
}
-
检查离线打包工程配置: 如果你使用的是原生工程离线打包:
- 确保
WKWebView的configuration中已启用 JavaScript:
WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init]; configuration.preferences.javaScriptEnabled = YES; configuration.preferences.javaScriptCanOpenWindowsAutomatically = YES; - 确保
-
检查权限配置: 在 iOS 项目的
Info.plist文件中,确保已添加必要的权限:<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>


