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

3 回复

根据您描述的问题和错误信息"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 的配置项与微信/支付宝小程序不完全一致。钉钉要求必须传入 confirmTextcancelText 参数(对应钉钉原生 API 的 confirmButtonTextcancelButtonText),否则会触发此错误。

解决方案:

修改你的代码,显式指定确认和取消按钮的文本:

uni.showModal({  
    title: '提示',  
    content: '该申请已提交,请确认是否撤回?',
    confirmText: '确定', // 必须提供
    cancelText: '取消',   // 必须提供
    success: (res) => {  
        console.log('⭐️detail.vue--327⭐success⭐️', res)  
    },  
    fail: (res) => {  
        console.log('⭐️detail.vue--334⭐fail⭐️', res)  
    },  
})
回到顶部