我在ionic3应用程序上使用phonegap-plugin-push
,并且在iOS平台上一直遇到此问题(Android可以)。当应用程序在后台/前景运行时,一切正常。但是,当应用程序未运行时,我会在通知托盘上收到消息,但没有点击通知或应用程序图标都不会触发on('notification')
事件,它只会运行并忽略传入的通知。
我正在按照文档中的建议在aps json消息中使用{ ... content-available: 1}
,但是它似乎没有任何作用(尽管它确实对Android有影响),离子应用本身从未即使设备已收到并显示在托盘上,也会获取消息。
下面的我展示了我的配置和发送到推送服务的示例消息。如果有人对如何解决这个问题有任何想法,我将在ios 8.x和ios 11.x上进行测试,它们都表现出相同的行为。
const options: PushOptions = {
android: {
senderID: '*************',
icon: 'ic_stat_ic_notification'
},
ios: {
alert: 'true',
badge: 'true',
sound: 'true'
},
windows: {}
};
platform.ready().then(() => {
push.on('registration').subscribe((data: EventResponse) => {
// register data.registrationId
});
push.on('notification').subscribe((data: EventResponse) => {
alert(data.message)
});
});
示例消息:
{
"aps": {
"alert": "This is a Push",
"badge": 1,
"content-available": 1
},
"payload": {
"type": "news"
}
}
答案 0 :(得分:1)
这个评论太长了。这更多是间接答案。
1)或应用程序图标触发on('notification')事件 <-是预期的。假设您的应用刚刚收到10条通知。它应该如何知道您打算打开哪个通知?
2)都不要点击通知 <-这会触发代码中的某些内容。您是否已实施didReceiveNotificationResponse
?有电话吗?还是使用remoteNotification
键启动了didFinishLaunching?那您的application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
被称为怎么样?