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通常是由于离线打包配置问题导致的。以下是几个关键排查点:

  1. 检查权限配置:确保在原生工程的AndroidManifest.xml中已添加必要的系统弹窗权限:

    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    
  2. 确认模块依赖:离线打包需在原生工程中引入uni-showModal相关模块。检查项目的build.gradle是否包含uni-app SDK完整依赖,特别是UI组件模块。

  3. 初始化检查:在应用启动时确保已正确初始化uni-app框架。原生工程中需要先调用UniSDKEngine.init()来加载uni-app运行时环境。

  4. 线程问题:确保uni.showModal在主线程调用。在原生工程中,通过runOnUiThread确保UI操作在主线程执行:

    runOnUiThread(()->{
        // 调用uni.showModal
    });
回到顶部