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

iPad iOS14.5下使用AppAvailability检测WhatsApp引发应用崩溃问题

问题根因

  • iOS 14及以上系统对应用查询其他App的URL Scheme做了强制限制:所有需要检测的App的URL Scheme必须提前在项目的Info.plist的LSApplicationQueriesSchemes数组中声明,未声明的Scheme直接调用查询接口会触发系统抛出异常,导致App崩溃。
  • 你当前只传了whatsapp://作为iOS端的检测参数,但没有在白名单里添加WhatsApp对应的Scheme,所以在符合系统版本要求的iPad上触发了崩溃。

解决步骤

  1. 打开你的Ionic项目的iOS配置文件(一般路径为resources/ios/Info.plist,如果是Cordova项目也可直接修改Xcode中项目根目录下的Info.plist),添加如下配置:
<key>LSApplicationQueriesSchemes</key>
<array>
    <string>whatsapp</string>
</array>

注意:此处仅需填写Scheme前缀,不需要加://后缀。
2. 优化代码逻辑,避免非iOS/Android平台下app变量为undefined导致的异常:

private checkAppAvailability(android: string, ios: string, propName: string): Promise<any> {
  let app;
  if (this.platform.is('ios')) {
    app = ios;
  } else if (this.platform.is('android')) {
    app = android;
  }
  // 新增非支持平台兜底逻辑
  if (!app) {
    this[propName] = false;
    return Promise.resolve(false);
  }
  return this.appAvailability.check(app)
    .then(() => (this[propName] = true))
    .catch(() => (this[propName] = false));
}
  1. 重新编译iOS安装包测试即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:24:02