0
iOSでプッシュ通知を処理しようとしています。すべてが正常に動作しますほとんどの部分についてチタン:通知をクリックせずにアプリを開くと、iOS通知を確認します。
var Cloud = require("ti.cloud");
var deviceToken = null;
var deviceToken = Ti.App.Properties.getString('deviceToken');
Ti.App.iOS.registerUserNotificationSettings({
types: [
Ti.App.iOS.USER_NOTIFICATION_TYPE_ALERT,
Ti.App.iOS.USER_NOTIFICATION_TYPE_SOUND,
Ti.App.iOS.USER_NOTIFICATION_TYPE_BADGE
]
});
Ti.App.iOS.addEventListener('usernotificationsettings', function registerForPush() {
Ti.App.iOS.removeEventListener('usernotificationsettings', registerForPush);
Ti.Network.registerForPushNotifications({
success: function(e) {
if (e.deviceToken !== Ti.App.Properties.getString('deviceToken', null)) {
deviceToken = e.deviceToken;
Ti.App.Properties.setString('deviceToken', deviceToken)
subscribeToChannel();
} else {
Ti.API.info('Already registered for push notifications!');
}
},
error: function(e) {
Ti.API.error('Failed to register for push notifications: ' + e.error);
},
callback: receivePush
});
});
function subscribeToChannel() {
Cloud.PushNotifications.subscribeToken({
device_token: deviceToken,
channel: 'general',
type: Ti.Platform.name == 'android' ? 'android' : 'ios'
}, function (e) {
alert(e.success === true ? 'Subscribed' : 'Error!');
});
}
// When receieve interactive remote notification
Ti.App.iOS.addEventListener('remotenotificationaction', function(e) {
alert('remotenotificationaction: ' + JSON.stringify(e));
});
// When receieve interactive notification in the background
Ti.App.iOS.addEventListener('localnotificationaction', function(e) {
alert('localnotificationaction');
});
// When receieve interactive notification in the foreground
Ti.App.iOS.addEventListener('notification', function(e) {
alert('notification');
});
function receivePush(e) {
alert('receivePush');
}
:
私の単純なコードは次のようになります。
- アプリがバックグラウンドになると、通知が表示されます。通知をクリックすると、「receivePush」メッセージが表示されます。
- アプリケーションがフォアグラウンドになると、通知は表示されませんが、「receivePush」メッセージが表示されます。
- しかし、アプリがバックグラウンドのときに通知を受け取った後、アプリを直接クリックすると(つまり、通知はクリックされません)、上記のいずれのイベントも発生しません。
イベントが最後のケースでトリガーされたことを確認するにはどうすればよいですか。
私はあなたが意味することを理解していると思いますが、アプリがバックグラウンドで実行されていて通知がまだクリックされていないときに通知を受け取ったときに少なくともコールバックが必要です。 –