ios - `on('notification')` 在应用未运行时不会在 iOS 上触发
问题描述
我phonegap-plugin-push
在我的 ionic3 应用程序上使用它,并且在 iOS 平台上遇到了这个问题(android 还可以)。当应用程序处于后台/前台时,一切都按预期工作。但是,当应用程序未运行时,我会在通知托盘上收到消息,但点击通知或应用程序图标都不会触发on('notification')
事件,它只是运行并忽略传入的通知。
我正在使用{ ... content-available: 1}
文档中建议的 aps json 消息,但它似乎没有任何效果(尽管它确实对 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
实施了吗?这会被调用吗?或者您的 didFinishLaunching 是否使用remoteNotification
密钥启动?你的application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
那个被调用怎么样?
推荐阅读
- delphi - Delphi 10.2 CE 中导入的 ActiveX 控件在调色板中不可用
- css - 迁移 grunt 到 webpack
- python-3.x - Google Datalab 从云存储中读取
- javascript - onMouseOver 事件在 React 中不起作用
- r - 我如何在 r 中过滤具有相同条件的多个列
- angular - 如何为外部 javascript 节点模块编写 Typescript 声明文件
- python - 在 Python 中使用 random.sample() 后如何获取剩余样本?
- python - 用于 Python 的 MP3 (MPEG I) 块解码器
- amazon-web-services - 使用 aws-amplify 存储“配置中缺少凭据”
- java - JavaFX - 如何同步 TextArea 滚动条和 ScrollPane 滚动条