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
来自 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