uni-app uni.showModal 在钉钉小程序中不起作用
uni-app uni.showModal 在钉钉小程序中不起作用
示例代码:
// 这样会打印出:⭐️detail.vue--334⭐fail⭐️ {errMsg: "showModal:fail No value for cells"}
uni.showModal({
title: '提示',
content: '该申请已提交,请确认是否撤回?',
success: (res) => {
console.log('⭐️detail.vue--327⭐success⭐️', res)
},
fail: (res) => {
console.log('⭐️detail.vue--334⭐fail⭐️', res)
},
})
操作步骤:
- 直接写方法调用
uni.showModal
预期结果:
- 钉钉小程序中可正常调用
showModal,弹出确认框
实际结果:
- 无效
bug描述:
- uni.showModal 在钉钉小程序中不起作用
- 点击无反应,会报错
| 信息类别 | 信息内容 |
|------------------|---------------------|
| 产品分类 | uniapp/小程序/钉钉 |
| PC开发环境操作系统 | Mac |
| PC开发环境操作系统版本号 | 15.7 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 4.85 |
| 第三方开发者工具版本号 | 3.9.92 |
| 基础库版本号 | 1.25.10 |
| 项目创建方式 | HBuilderX |
更多关于uni-app uni.showModal 在钉钉小程序中不起作用的实战教程也可以访问 https://www.itying.com/category-93-b0.html
根据您描述的问题和错误信息"showModal:fail No value for cells",这是钉钉小程序特有的限制导致的。
钉钉小程序对uni.showModal有特殊要求:
真机环境下title和content都是必填项(模拟器可能不严格检查)
钉钉小程序要求必须提供cancelText和confirmText参数,即使使用默认值
解决方案:
uni.showModal({
title: ‘提示’,
content: ‘该申请已提交,请确认是否撤回?’,
cancelText: ‘取消’, // 显式添加
confirmText: ‘确认’, // 显式添加
success: (res) => {
console.log(‘success’, res)
},
fail: (res) => {
console.log(‘fail’, res)
}
})
另外请注意:
钉钉小程序真机与模拟器表现有差异,建议在真机测试
钉钉小程序不支持cancelColor/confirmColor属性
当前HBuilderX 4.85正式版可能存在兼容性问题,可尝试升级到4.86 alpha版
参考文档:uni.showModal API文档
如果问题仍然存在,建议使用自定义模态框组件替代,插件市场有许多成熟的解决方案。 内容为 AI 生成,仅供参考
更多关于uni-app uni.showModal 在钉钉小程序中不起作用的实战教程也可以访问 https://www.itying.com/category-93-b0.html
uni.showModal 是调用的钉钉的原生showModal API,注意参数变化,如果你想要和支付宝小程序类似的那种,可以自行使用prompt等API模拟
根据你提供的错误信息 {errMsg: "showModal:fail No value for cells"},问题在于钉钉小程序平台对 uni.showModal 的实现存在差异。
在钉钉小程序中,showModal 的配置项与微信/支付宝小程序不完全一致。钉钉要求必须传入 confirmText 和 cancelText 参数(对应钉钉原生 API 的 confirmButtonText 和 cancelButtonText),否则会触发此错误。
解决方案:
修改你的代码,显式指定确认和取消按钮的文本:
uni.showModal({
title: '提示',
content: '该申请已提交,请确认是否撤回?',
confirmText: '确定', // 必须提供
cancelText: '取消', // 必须提供
success: (res) => {
console.log('⭐️detail.vue--327⭐success⭐️', res)
},
fail: (res) => {
console.log('⭐️detail.vue--334⭐fail⭐️', res)
},
})

