Ipad вылетает из-за проверки доступности приложений для WhatsApp

#ios #angular #ionic-framework #ipad #ionic3

Вопрос:

Я разрабатываю приложение с ionic v3 и angular, и мне нужно проверить наличие whatsapp на устройствах. Мы используем эту библиотеку https://github.com/ohh2ahh/AppAvailability. Но только Ipad с iOS 14.5 приводит к сбою приложения, вызывая эту ошибку:

введите описание изображения здесь

код такой:

 /**
   * Creates an instance of LoadingService.
   */
  constructor(private platform: Platform, private appAvailability: AppAvailability) {
    this.platform.ready().then(() => {
      this.checkAll();
    });
  }

  /**
   *
   *
   */
  checkAll(): Promise<any> {
    return this.checkAppAvailability('com.whatsapp', 'whatsapp://', '_whatsapp');
  }

  /**
   *
   *
   */
  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;
    }

    return this.appAvailability.check(app).then(() => (this[propName] = true), () => (this[propName] = false));
  }

 

Комментарии:

1. Вам нужно запустить приложение в отладчике Xcode с установленной точкой останова исключения, чтобы найти фактическую строку, на которой происходит сбой. В сообщении об исключении говорится, что какой-то код пытался вызвать length метод then NSNull ; вероятно, какое-то значение было NSNull , когда ожидался массив или строка

2. Спасибо @Paulw11n!