uni-app uni.showModal 在原生工程中 无法弹出
uni-app uni.showModal 在原生工程中 无法弹出
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win11 | HBuilderX |
示例代码:
uni.showModal({
title: "绑定服务",
content: "确定要绑定 " + name,
success: (result : UniShowModalResult) => {
if (result.confirm) {
uni.showLoading({
title: "正在绑定",
mask: true
})
modify(code).then(() => {
uni.showToast({
title: "绑定成功",
icon: "none"
})
code.uid = ''
code.serviceUid = ''
params.pageNumber = 1
moreStatus.active = 0
loadDataPage("refresh")
uni.$emit("payment-update")
}).catch(() => {
uni.showToast({
title: "绑定失败",
icon: "none"
})
}).finally(() => {
uni.hideLoading()
})
} else {
code.uid = ''
code.serviceUid = ''
}
}
})
操作步骤:
任何使用uni.showModal的地方均无法弹出
预期结果:
正常弹出模态框
实际结果:
页面无反应
bug描述:
如附件在页面中使用uni.showModal模态框,标准基座场景可以正常弹出,离线打包到android设备后直接进入fail。

更多关于uni-app uni.showModal 在原生工程中 无法弹出的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app uni.showModal 在原生工程中 无法弹出的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在原生工程中无法弹出uni.showModal通常是由于离线打包配置问题导致的。以下是几个关键排查点:
-
检查权限配置:确保在原生工程的
AndroidManifest.xml中已添加必要的系统弹窗权限:<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> -
确认模块依赖:离线打包需在原生工程中引入
uni-showModal相关模块。检查项目的build.gradle是否包含uni-app SDK完整依赖,特别是UI组件模块。 -
初始化检查:在应用启动时确保已正确初始化uni-app框架。原生工程中需要先调用
UniSDKEngine.init()来加载uni-app运行时环境。 -
线程问题:确保
uni.showModal在主线程调用。在原生工程中,通过runOnUiThread确保UI操作在主线程执行:runOnUiThread(()->{ // 调用uni.showModal });

