Ionic App Rate插件iOS端偏好设置失效且无法找到应用
解决Ionic App Rate插件iOS端的两个问题:偏好设置失效&App Store跳转异常
我之前也碰到过类似的iOS端App Rate插件问题,给你整理了针对性的排查和解决办法:
一、偏好设置未生效的问题
这个问题大概率是配置时机不对或者自定义Locale的格式不符合iOS端要求,可以按以下步骤排查:
确保偏好设置在调用
prompt()之前完成配置
很多人会不小心把preferences的赋值放在prompt()之后,导致配置没生效。一定要保证顺序是:先设置偏好,再触发弹窗。检查自定义Locale的键名是否正确
iOS端对自定义Locale的键名有严格要求,要确保title、message等键拼写无误,且所有必要的键都填全——缺失部分键可能导致插件默认忽略自定义配置,转而使用系统默认文案。验证频率控制逻辑
iOS系统本身对应用评分弹窗的频率有底层限制,即使你设置了usesUntilPrompt:2,如果系统判定弹窗过于频繁,也会忽略你的配置。可以先把这个值临时设为1,测试是否能触发弹窗,排除系统限制的影响。
二、无法在App Store找到对应应用的问题
这个问题100%是iOS的Store链接格式错误导致的,你当前填的'####'不符合要求,正确的iOS App Store跳转链接有两种常用格式:
- 直接跳转评分页面(推荐):
itms-apps://itunes.apple.com/app/id{你的iOS应用Apple ID} - 跳转应用详情页:
https://apps.apple.com/{地区码}/app/{应用名称}/id{你的iOS应用Apple ID}
注意:这里的iOS应用ID是App Store Connect中给你的一串纯数字ID,不是应用的Bundle ID!你需要登录App Store Connect找到对应应用,复制它的Apple ID替换进去。
修正后的完整代码示例
// 在组件初始化或合适时机配置App Rate async setupAppRate() { // 先完成所有偏好配置 this._appRate.preferences = { displayAppName: '你的应用名称', usesUntilPrompt: 2, promptAgainForEachNewVersion: false, storeAppURL: { android: `market://details?id=${this.APP_ID}`, // 替换为你的iOS应用纯数字Apple ID ios: `itms-apps://itunes.apple.com/app/id1234567890` }, customLocale: { title: 'Enjoying 你的应用名称?', message: 'Rate us.', rateButtonLabel: 'Rate now', laterButtonLabel: 'Remind later', cancelButtonLabel: 'No, thanks' } }; // 配置完成后再调用弹窗 await this._appRate.prompt(); }
额外注意事项
- iOS端测试必须使用真机,模拟器无法跳转App Store
- 未上架App Store的测试版应用无法触发官方评分弹窗
- 可以临时开启调试模式
this._appRate.preferences.debug = true,查看控制台输出的错误信息,帮助快速定位问题
内容的提问来源于stack exchange,提问作者Larry Edwardson
相关产品推荐
相关产品推荐

