#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
метод thenNSNull
; вероятно, какое-то значение былоNSNull
, когда ожидался массив или строка2. Спасибо @Paulw11n!