Как обрабатывать push-уведомления с Cordova, когда они приходят и приложение закрывается
Могу ли я как-то обнаружить приход push-уведомлений и обработать его с помощью cordova, когда приходит уведомление и приложение закрывается в это время? Я использую кордову com.clone.phonegap.plugins.pushplugin
но когда приходит уведомление и приложение закрывается, то прослушиватели событий, зарегистрированные мной с использованием плагина javascript-кода, не "живы", и я не могу определить прибытие. Можно ли добиться этого каким-то другим способом, используя Cordova?
4 ответа
Если вы запрашиваете iOS, то нет. Ваше приложение не может обрабатывать уведомления пользователей в фоновом режиме. Если пользователь коснется баннера уведомления, ваше приложение откроется, и вы получите обратный вызов с полезной нагрузкой уведомления, которая может быть перенаправлена в JavaScript.
Если вы хотите обрабатывать фоновые уведомления без вывода сообщений, это должно быть сделано на нативном, потому что выполнение JavaScript приостановлено в фоновом режиме AFAIK. Вы можете реализовать очередь, которая просто сохраняет фоновое уведомление и затем отправляет его в JavaScript, когда приложение возвращается в активное состояние.
Используйте официальный PushPlugin.
В Android уведомление будет создано в строке состояния, если приложение закрыто, в противном случае полезная нагрузка передается вашему приложению
Вы можете вызвать событие on("уведомление"), когда приложение закрыто, используя плагин phonegap-plugin-push > 1.6.2, и изменив свой внутренний ответ на:
{
notification : {
title : 'yourTitle',
message : 'yourMessage'
}
}
в
{
data : {
title : 'yourTitle',
message : 'yourMessage',
content-available : "1" //only for IOS
}
}
Я не уверен в этом решении, но вы пробовали это:-
Добавьте это в didReceiveRemoteNotification
метод
NSString* jsString = [NSString stringWithFormat:@"localStorage.NotificationId=%@;", dynamicNotificationId];
[self.viewController.webView stringByEvaluatingJavaScriptFromString:jsString];