繁体   English   中英

离子推送通知:未在 IOS 中接收

[英]Ionic Push Notification: Not receiving in IOS

情况:

我在我的应用程序中使用离子推送通知

使用 android 一切正常。 但是使用 IOS 我没有收到任何通知。

代码应该没问题。 令牌的注册也可以在 IOS 设备内部正常工作。 我可以在数据库中看到令牌。

此外,cURL 请求代码应该没问题,因为它适用于 android。

我将在下面粘贴所有可能有用的信息:

编码:

初始化:

$ionicCloudProvider.init({

    "core": 
    {
        "app_id": "MY_APP_ID"
    },
    "push": 
    {
        "sender_id": "MY_SENDER_ID",
        "pluginConfig": {
            "ios": {
                "badge": true,
                "sound": true
            }
        }
    }
});

io-config.json:

{"app_id":"MY_APP_ID","api_key":"MY_API_KEY","dev_push":false,"gcm_key":"MY_GCM_KEY"}

证书:

在 ionic.io 中,我设置了证书 - 生产模式 - 并激活所有凭据: ionic.io 证书

在 Apple Developer Console 中,推送通知服务已正确启用(用于生产)

在此处输入图片说明

测试:

该应用程序已在应用程序商店中发布。

无论如何,我通过 XCODE(连接到它的设备)在本地进行了测试,并直接从应用商店下载了应用程序。

我从未收到任何通知。

使用 POSTMAN 进行测试,结果如下:

{
  "data": {
    "status": "open",
    "uuid": "b55a9024-d0d9-480e-a813-02053bcf2f2a",
    "created": "2016-09-19T14:05:01.097422+00:00",
    "state": "enqueued",
    "app_id": "MY_APP_ID",
    "config": {
      "tokens": [
        "THE_RECEIVER_TOKEN"
      ],
      "notification": {
        "message": "Push test"
      },
      "profile": "MY_IONIC_IO_PROFILE"
    }
  },
  "meta": {
    "status": 201,
    "request_id": "dbb57cba-3817-42ee-baaf-7175b5f6c755",
    "version": "2.0.0-beta.0"
  }
}

问题:

为什么我在 IOS 上没有收到任何通知?

我错过了什么吗?

谢谢!

  • 确保在您的 iOS 设置应用中启用通知
  • 尝试在推送负载中使用 content_available = true
  • 尝试在推送负载中使用 priority = "high"
  • 确保您没有在生产应用版本上使用开发证书发送,反之亦然
  • 确保您的令牌有效且已刷新

关于优先级和 content_available 属性的文档

从文档:

在 iOS 上,当应用服务器需要发送 Send-to-Sync 消息时设置 content_available。 不活动的客户端应用程序将在后台执行您的逻辑,而前台的应用程序会将消息传递给 didReceiveRemoteNotification:。

  1. 确保您拥有最新版本的 Ionic i,e v2 及更高版本。

  2. 在路径 src/app/app.components.ts

  3. platform.ready().then(() => {添加下面的代码

    var push = Push.init({ android: { senderID: "XXXXXXXXX" }, ios: { alert: "true", badge: true, sound: 'false' }, windows: {} }); push.on('registration', (data) => { console.log(data.registrationId); alert(data.registrationId.toString()); }); push.on('notification', (data) => { console.log(data); });
  4. 构建后(ionic build ios)在Xcode中打开ionic项目,一般和团队部分选择一个已经支付了苹果开发者账号的账号。

  5. 然后在功能中启用推送通知。

  6. 如果所有其他约束(如证书和 .p12 文件)都按照苹果行会行完成,那么推送肯定会起作用。

  7. 有关更多信息,请访问此链接: http : //ionicframework.com/docs/v2/native/push/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM