`on('notification')` 当应用程序不是 运行 时,不会在 iOS 上触发
`on('notification')` is not triggered on iOS when app is not running
我在我的 ionic3 应用程序上使用 phonegap-plugin-push
,我在 iOS 平台上一直遇到这个问题(android 没问题)。当应用程序处于 background/foreground 时,一切都按预期工作。但是,当应用程序不是 运行 时,我会在通知托盘上收到消息,但点击通知或应用程序图标都不会触发 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"
}
}
这条评论太长了。这更像是一个间接的回答。
1) 或应用程序图标触发 on('notification') 事件 <-- 这是预期的。假设您的应用刚刚收到 10 条通知。它应该如何知道您打算打开哪个通知?
2) 既不点击通知 <-- 这应该会在您的代码中触发某些内容。你有 didReceiveNotificationResponse
implemented? Does that get called? Or does your didFinishLaunching get launched with a remoteNotification
钥匙吗?你的 application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
会被调用吗?
我在我的 ionic3 应用程序上使用 phonegap-plugin-push
,我在 iOS 平台上一直遇到这个问题(android 没问题)。当应用程序处于 background/foreground 时,一切都按预期工作。但是,当应用程序不是 运行 时,我会在通知托盘上收到消息,但点击通知或应用程序图标都不会触发 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"
}
}
这条评论太长了。这更像是一个间接的回答。
1) 或应用程序图标触发 on('notification') 事件 <-- 这是预期的。假设您的应用刚刚收到 10 条通知。它应该如何知道您打算打开哪个通知?
2) 既不点击通知 <-- 这应该会在您的代码中触发某些内容。你有 didReceiveNotificationResponse
implemented? Does that get called? Or does your didFinishLaunching get launched with a remoteNotification
钥匙吗?你的 application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
会被调用吗?