我们从UA迁移到One Signal。我们正在从像
这样的云代码发送推送var pushInfo = {
"app_id" : "xxxxxx",
"data": {
"objectId": objectId,
"placeId": placeId,
},
"included_segments": ["All Users"],
"contents": {"en": message}
};
var headers = {
"Content-Type": "application/json; charset=utf-8",
"Authorization": "Basic XXXXX"
};
var options = {
host: "onesignal.com",
port: 443,
path: "/api/v1/notifications",
method: "POST",
headers: headers,
};
var https = require('https');
var req = https.request(options, function(res) {
res.on('data', function(data) {
console.log("Response:");
console.log(JSON.parse(data));
});
});
req.on('error', function(e) {
console.log("ERROR:");
console.log(e);
});
req.write(JSON.stringify(pushInfo));
req.end();
在我的AppDelegate.m中我做了
[OneSignal initWithLaunchOptions:launchOptions appId:@"XXXXX"];
现在早些时候收到通知并且用户点击它时,它就用来调用
-(void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
Q值。现在没有被调用。如何使用OneSignal处理它。 问:我需要做什么来处理无声通知(没有可见的徽章/横幅等)
答案 0 :(得分:5)
我假设您正在iOS10设备上测试/运行您的应用
我查看了OneSignal SDK代码,我认为在设备上检测到iOS10时,SDK会自动使用新的UserNotifications Framework(在iOS10中添加)。
在这种情况下,不会调用上面提到的AppDelegate方法,而是调用UNUserNotificationCenterDelegate中的方法,SDK会捕获这些方法以记录点击次数/视图。
要解决此问题,请创建一个实现OSUserNotificationCenterDelegate
的新类,并使用[OneSignal setNotificationCenterDelegate:yourCustomNotificationCenterDelegateInstance]
请注意,当静默推送通知(content-available:1)到达时仍会调用application:didReceiveRemoteNotification:fetchCompletionHandler:
,但如果使用UNUserNotificationCenterDelegate
,则在用户点按通知时不会调用application:didReceiveRemoteNotification
。
此外,iOS 10.0.X上存在一个问题,其中application:didReceiveRemoteNotification:fetchCompletionHandler:
被调用而不是{{1}}请参阅:https://forums.developer.apple.com/thread/54332,但我怀疑是否属于这种情况。< / p>
答案 1 :(得分:1)
一个信号通知集成
使用以下代码块处理PushNotification消息内容
在AppDelegate的ApplicationDidFinishLaunch选项方法中放入以下代码
beforeAll()
答案 2 :(得分:0)
application:didReceiveRemoteNotification:fetchCompletionHandler:
是背景静默content-available
通知的正确选择器。确保使用latest 2.2.2 OneSignal SDK,因为有一些修复可以保持与旧的AppDelegate选择器的兼容性。
您可能希望将UNNotificationServiceExtension与mutable-content
一起用于iOS 10设备,因为当应用程序被刷掉后,这仍然有效。