OneSignal 通知不适用于 iOS 10

OneSignal Notification not working on iOS 10

来自 OneSiganl 的 iOS 10 通知无效。我再次检查了我正在使用的东西..

Xcode 8.1, Swift3、 添加了最新的配置证书, 在功能下,推送通知已获得授权,

我的应用委托方法是

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

  OneSignal.initWithLaunchOptions(launchOptions, appId: ONE_SIGNAL_APPID)
    OneSignal.setLogLevel(.LL_VERBOSE, visualLevel: .LL_NONE)
    OneSignal.promptLocation();
   OneSignal.initWithLaunchOptions(launchOptions, appId: ONE_SIGNAL_APPID, handleNotificationReceived: {

        (Notification) in            

    }, handleNotificationAction: { (action) in

    }, settings:[kOSSettingsKeyAutoPrompt: true ,
                  kOSSettingsKeyInFocusDisplayOption:OSNotificationDisplayType.notification.rawValue]) }

并使用 id 注册设备。

     func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {


     OneSignal.sendTag("myType", value: "myBroadCast")

    OneSignal.idsAvailable { (userId, deviceToken) in

        let userId = String(format: "%@", userId!)
        DataManager.sharedInstance.deviceToken = userId;

        print("player id",userId)
    }

我显然已经得到了 playerid,即 userId。所以我的设备注册成功。

问题是我的设备没有收到 api 通知。除了 OneSignal 示例推送消息(工作正常),

我的 API 通知负载是

    {"alert":{"notification":{"notification_type":1,"v_n":"Custom Place","u_n":"customer","c_id":907,"m_id":1207,"m_t":"1","f_a":0,"d_d":"07 Dec, 2016","t_t":"07:40 AM","is_group_chat":true},"body":"hxuf"},"badge":1,"sound":"NewMessage.mp3"}

请在这方面帮助我。因为这个问题只出现在 iOS 10 台设备上。

如果您对 https://onesignal.com/api/v1/notifications 进行 POST REST API 调用,您的 JSON 格式不正确。根据问题中 JSON 示例中的内容,OneSignal 通知的 JSON 有效负载应如下所示。

{
   "app_id": "YOUR_ONESIGNAL_APP_ID",
   "contents": {"en": "hxuf"},
   "ios_badgeType": "SetTo",
   "ios_badgeCount": 1,
   "ios_sound":"NewMessage.mp3",
   "data": {"notification_type":1,"v_n":"Custom Place","u_n":"customer","c_id":907,"m_id":1207,"m_t":"1","f_a":0,"d_d":"07 Dec, 2016","t_t":"07:40 AM","is_gr`oup_chat":true}
}

注意 1: 您必须将目标参数(例如 include_player_ids 作为 JOSN 数组设置到 OneSignal 播放器/用户 ID 列表。或者使用其他定位参数,例如 included_segments。请参阅此答案底部的 OneSignal 文档页面中的完整 tart 选项。

注意 2:.mp3 文件不能用于 iOS 的通知声音。您必须将其转换为 .wav 或 .caf 格式。

请参阅下面有关创建 REST API 调用端点的 OneSignal 的完整文档。 https://documentation.onesignal.com/reference#create-notification