IONIC-Cli 5.4.13 Native中Siri实现及Cordova插件安装错误解决求助
解决Ionic Native 5.4.13中Siri插件安装的
requireCordovaModule错误及Siri功能实现指南 嘿,我刚好踩过这个坑!你遇到的错误是因为你要安装的Cordova Siri插件还在使用旧的requireCordovaModule API加载非Cordova模块(这里是glob),而现在Cordova已经禁止这种做法了——必须把这类第三方模块加到项目依赖里,用普通的require来加载。下面一步步帮你搞定:
第一步:修复插件安装错误
方案1:安装已修复该问题的插件版本
先卸载当前有问题的插件:
ionic cordova plugin remove cordova-plugin-siri-shortcuts
然后安装最新版的插件(如果开发者已经修复了这个问题):
ionic cordova plugin add cordova-plugin-siri-shortcuts@latest
如果最新版还是有问题,去插件的GitHub仓库看看有没有针对这个错误的Issue,找已经被合并的修复分支,或者指定一个已知兼容的版本安装。
方案2:手动修改插件代码(找不到合适版本时用)
- 先把插件装到本地:
ionic cordova plugin add cordova-plugin-siri-shortcuts
- 找到插件的安装目录(一般在项目根目录的
plugins/cordova-plugin-siri-shortcuts/下),找到使用requireCordovaModule('glob')的文件(通常是插件的钩子文件或工具类js),把它改成require('glob')。 - 在项目根目录安装
glob依赖:
npm install glob --save
- 重新build项目:
ionic cordova build ios
第二步:配置Ionic Native的Siri包装器
安装对应的Ionic Native包:
npm install @ionic-native/siri-shortcuts
然后在app.module.ts里导入并添加到providers数组:
import { SiriShortcuts } from '@ionic-native/siri-shortcuts/ngx'; @NgModule({ declarations: [...], imports: [...], providers: [ // 其他providers SiriShortcuts ], bootstrap: [...] }) export class AppModule { }
第三步:实现Siri快捷功能
创建Siri快捷方式
在需要的页面组件里,注入SiriShortcuts服务,添加创建快捷方式的方法:
import { SiriShortcuts } from '@ionic-native/siri-shortcuts/ngx'; constructor(private siriShortcuts: SiriShortcuts) { } // 示例:创建打开应用的快捷方式 createOpenAppShortcut() { this.siriShortcuts.present({ persistentIdentifier: 'open-my-app-shortcut', title: '打开我的应用', suggestedInvocationPhrase: '打开我的应用', userInfo: { action: 'open' }, // 自定义参数,用于后续识别 isEligibleForSearch: true, isEligibleForPrediction: true }).then(() => { console.log('Siri快捷方式创建成功!'); }).catch(err => { console.error('创建快捷方式失败:', err); }); }
监听Siri打开应用的事件
当用户通过Siri快捷方式打开应用时,监听事件并处理对应逻辑:
ngOnInit() { this.siriShortcuts.onShortcutListener() .subscribe((shortcutData: any) => { console.log('通过Siri打开,获取到的参数:', shortcutData); // 根据自定义参数执行对应逻辑 if (shortcutData.userInfo.action === 'open') { // 执行打开特定页面或操作的代码 } }); }
第四步:iOS配置(关键!)
在Xcode里打开项目,完成两个配置:
- 添加Siri权限描述:在
Info.plist里添加NSSiriUsageDescription键,值填使用Siri的原因,比如"使用Siri快捷方式可以快速打开应用并执行常用操作"。 - 开启Siri能力:在Xcode的
Signing & Capabilities里,点击+ Capability,添加Siri权限。
额外排坑提示
- 测试Siri功能必须用真实iOS设备,模拟器不支持完整的Siri快捷功能。
- 确保Cordova版本和Ionic 5.4.13兼容,建议用Cordova 9.x或10.x版本,过高版本可能有更多兼容问题。
- 如果修改了插件代码,重新安装插件后要检查代码是否被覆盖,最好fork插件仓库自己修复后安装分支版本。
内容的提问来源于stack exchange,提问作者viral chauhan
相关产品推荐
相关产品推荐

