ios - `on(' notification ')` 在应用程序未运行时未在 iOS 上触发

标签 ios ionic3 phonegap-plugin-push

我在 ionic3 应用程序上使用 phonegap-plugin-push,并且在 iOS 平台上遇到了这个问题(android 没问题)。当应用程序处于后台/前台时,一切都会按预期工作。但是,当应用程序未运行时,我在通知托盘上收到消息,但点击通知或应用程序图标都不会触发 on('notification') 事件,它只是运行并忽略传入通知.

我正在按照文档的建议在 aps json 消息中使用 { ... content-available: 1},但它似乎没有任何效果(虽然,它确实对 Android 有影响),即使设备收到消息并将其显示在托盘上, ionic 应用程序本身也永远不会收到消息。

下面,我展示了我的配置和发送到推送服务的示例消息。如果有人知道如何解决这个问题,我将不胜感激,我已经在 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 启动的吗? key ?你的 application(_:didReceiveRemoteNotification:fetchCompletionHandler:) 会被调用吗?

关于ios - `on(' notification ')` 在应用程序未运行时未在 iOS 上触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51106762/

相关文章:

ios - 如何通过命令行 (xcodebuild) 在 Xcode 8 中启用钥匙串(keychain)共享功能

android - "Facebook Login integration"成功提交到应用中心有什么要求?

ios - 如何使用 Swift 4 延长位置跟踪时间

ios - 显示组合数组中的文本标签(使用 API)

html - 如何更改 ionic 标题的颜色?

nodemcu esp8266 中的 CORS 问题

ios - ionic 3 cordova ios 构建失败 'google/protobuf/Api.pbobjc.h' 找不到文件

ios - 在构建 : GoogleCloudMessaging. h 时,phonegap-plugin-push 错误 65 已弃用。我们可以从项目中删除它吗?快速解决?

ios - ionic 版本 1 推送通知 cordova-ios 4.4.0