uni-app uni.showToast title文本太长时iOS上会闪退

uni-app uni.showToast title文本太长时iOS上会闪退

开发环境 版本号 项目创建方式
PC Mac HBuilderX
Macmini 2023
手机 iOS
iOS 15
苹果
iPhone 7 PLUS
页面类型 vue版本
vue3

示例代码:

console.log(instance.$t('debug.noQRCodeTip'));  
// 文本为 QR code not recognized 未识别到二维码  
const title = instance.$t('debug.noQRCodeTipSimple')  
uni.showToast({  
    // https://ask.dcloud.net.cn/article/36022  
    // TODO 此处长文本会导致 iOS 闪退,改为简短  
    title: title,  
    icon: 'none'  
})

操作步骤:

console.log(instance.$t('debug.noQRCodeTip'));  
// 文本为 QR code not recognized 未识别到二维码  
const title = instance.$t('debug.noQRCodeTipSimple')  
uni.showToast({  
    // https://ask.dcloud.net.cn/article/36022  
    // TODO 此处长文本会导致 iOS 闪退,改为简短  
    title: title,  
    icon: 'none'  
})

预期结果:

  • 弹窗

实际结果:

  • 弹窗即闪退

bug描述:

uni.showToast title文本太长时iOS上会闪退!!!


更多关于uni-app uni.showToast title文本太长时iOS上会闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html

9 回复

测试效果

更多关于uni-app uni.showToast title文本太长时iOS上会闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html


改为短字符,可以了,如代码所示

多少个字符闪退了?给一个示例看看

回复 DCloud_UNI_yuhe: QR code not recognized 这个字符串会闪退,改为 unrecognized 恢复正常

回复 一只月月鸟呀: 我这里测试没有出现这个问题,你看一下是否是有其它逻辑会影响

现在有可以了?

可以了。没问题

回复 一只月月鸟呀: 看一下是不是别的地方闪退,看起来这个应该不会导致闪退

这是一个已知的iOS平台限制问题。uni.showToast在iOS上对title文本长度有严格限制,当文本过长时会直接导致应用闪退。

根据官方文档和实际测试,iOS平台建议将title文本控制在20个字符以内。从你的代码看,debug.noQRCodeTipSimple对应的文本内容可能超出了这个限制。

解决方案:

  1. 精简提示文本,确保不超过20个字符
  2. 对于需要显示较长内容的情况,建议使用uni.showModal替代
  3. 或者自定义toast组件来处理长文本显示

修改建议:

// 将长文本截断或替换为简短提示
const shortTitle = title.length > 20 ? title.substring(0, 17) + '...' : title
uni.showToast({
    title: shortTitle,
    icon: 'none'
})
回到顶部