解析不发送 iOS7 的推送打开通知
Parse not sending push open notifications for iOS7
我已按照有关使用 Parse 进行推送设置的指南进行操作。
在 iOS7 设备和 iOS8 设备上测试应用程序时,从推送打开时会调用相同的方法:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
DebugLog(@"%s",__PRETTY_FUNCTION__);
if (application.applicationState == UIApplicationStateInactive) {
[PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
}
if (completionHandler) {
completionHandler(UIBackgroundFetchResultNoData);
}
[PFPush handlePush:userInfo];
}
看来虽然在 iOS7 上调用了 [PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
方法,但数据未显示在 Parse 中。
比如查看已发送的Push,显示的是Opens的数量。如果我向 iOS7 设备和 iOS8 发送推送,则会调用相同的代码部分。但是,它只记录了 iOS8 版本。还有什么我应该做的吗?
我们已遵循相关指南:https://parse.com/docs/ios/guide#push-notifications
这也实现了:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
DebugLog(@"%s",__PRETTY_FUNCTION__);
if (application.applicationState == UIApplicationStateInactive) {
// The application was just brought from the background to the foreground,
// so we consider the app as having been "opened by a push notification."
[PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
}
[PFPush handlePush:userInfo];
}
此问题是由某些通知权限测试引起的。
测试通知权限时,提示只会在第一次出现。要让提示再次出现,您需要:
删除应用程序并重置设备
打开它并将日期更改为未来的日期,重新设置
打开它和re-install/build应用程序,权限提示将再次出现。
我们已经在 iOS7 和 iOS8 设备上完成了一些测试。问题似乎是在 iOS7 设备上虽然调用了推送打开通知但未记录,这似乎与将来的日期有关。
iOS8 设备上的日期也是将来的,但可能不会那么早。当日期设置为设备上的正确日期时,iOS7 设备上的推送打开通知再次被记录。
我已按照有关使用 Parse 进行推送设置的指南进行操作。
在 iOS7 设备和 iOS8 设备上测试应用程序时,从推送打开时会调用相同的方法:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
DebugLog(@"%s",__PRETTY_FUNCTION__);
if (application.applicationState == UIApplicationStateInactive) {
[PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
}
if (completionHandler) {
completionHandler(UIBackgroundFetchResultNoData);
}
[PFPush handlePush:userInfo];
}
看来虽然在 iOS7 上调用了 [PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
方法,但数据未显示在 Parse 中。
比如查看已发送的Push,显示的是Opens的数量。如果我向 iOS7 设备和 iOS8 发送推送,则会调用相同的代码部分。但是,它只记录了 iOS8 版本。还有什么我应该做的吗?
我们已遵循相关指南:https://parse.com/docs/ios/guide#push-notifications
这也实现了:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
DebugLog(@"%s",__PRETTY_FUNCTION__);
if (application.applicationState == UIApplicationStateInactive) {
// The application was just brought from the background to the foreground,
// so we consider the app as having been "opened by a push notification."
[PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
}
[PFPush handlePush:userInfo];
}
此问题是由某些通知权限测试引起的。
测试通知权限时,提示只会在第一次出现。要让提示再次出现,您需要:
删除应用程序并重置设备
打开它并将日期更改为未来的日期,重新设置
打开它和re-install/build应用程序,权限提示将再次出现。
我们已经在 iOS7 和 iOS8 设备上完成了一些测试。问题似乎是在 iOS7 设备上虽然调用了推送打开通知但未记录,这似乎与将来的日期有关。
iOS8 设备上的日期也是将来的,但可能不会那么早。当日期设置为设备上的正确日期时,iOS7 设备上的推送打开通知再次被记录。