В настоящее время используется следующее для обработки push-уведомлений на устройствах iOS.
Ti.App.iOS.addEventListener("usernotificationsettings", function registerForPush() {
Ti.App.iOS.removeEventListener("usernotificationsettings", registerForPush);
Cloud.Users.login({
login: "user",
password: "12345"
}, function (e) {
if (e.success) {
Ti.Network.registerForPushNotifications({
success: function(e){
Cloud.PushNotifications.subscribeToken({
channel: "AppAlerts",
device_token: e.deviceToken,
type: "ios"
}, function(e){
alert("subscribed");
});
},
error: function(e){
alert(e.error);
},
callback: function(e){
alert(e);
}
});
}
});
});
Я могу без проблем зарегистрировать токены устройства в Appcelerator. Когда приложение находится в фоновом режиме, и пользователь нажимает на push-уведомление, вызывается обратный вызов, и я могу прочитать полезную нагрузку. Однако, пока приложение находится на переднем плане, отображается баннер с уведомлением (как будто приложение все еще находится в фоновом режиме). Обратный вызов никогда не вызывается при нажатии на баннер или при получении.
Пример
Это, кажется, происходит на устройствах с iOS 10+. У устройства с 9.3.5 проблем не было.