You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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:手动修改插件代码(找不到合适版本时用)

  1. 先把插件装到本地:
ionic cordova plugin add cordova-plugin-siri-shortcuts
  1. 找到插件的安装目录(一般在项目根目录的plugins/cordova-plugin-siri-shortcuts/下),找到使用requireCordovaModule('glob')的文件(通常是插件的钩子文件或工具类js),把它改成require('glob')。
  2. 在项目根目录安装glob依赖:
npm install glob --save
  1. 重新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里打开项目,完成两个配置:

  1. 添加Siri权限描述:在Info.plist里添加NSSiriUsageDescription键,值填使用Siri的原因,比如"使用Siri快捷方式可以快速打开应用并执行常用操作"。
  2. 开启Siri能力:在Xcode的Signing & Capabilities里,点击+ Capability,添加Siri权限。

额外排坑提示

  • 测试Siri功能必须用真实iOS设备,模拟器不支持完整的Siri快捷功能。
  • 确保Cordova版本和Ionic 5.4.13兼容,建议用Cordova 9.x或10.x版本,过高版本可能有更多兼容问题。
  • 如果修改了插件代码,重新安装插件后要检查代码是否被覆盖,最好fork插件仓库自己修复后安装分支版本。

内容的提问来源于stack exchange,提问作者viral chauhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 09:48:14