didReceiveRemoteNotification fetchCompletionHandler 未在后台调用静默推送
didReceiveRemoteNotification fetchCompletionHandler is not getting called in background for silent push
所以我添加了 didReceiveRemoteNotification
委托来处理静默推送通知
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
该方法应在后台调用以在通知用户之前更新内容,以便用户可以打开应用程序并立即呈现新内容。
但是这个方法永远不会在后台调用。我试图调试问题但没有成功。令人惊讶的是,如果我的应用程序在前台,这个方法会被正确调用,我可以很容易地检查 content-available
来更新 UI.
谁能帮我解决这个问题,为什么 didReceiveRemoteNotification:fetchCompletionHandler
没有在后台调用?
在 xcode 的 'Capabilities' 选项卡的 'Background Modes' 中启用 'Remote Notifications'。
有关详细信息,请参阅此 link
希望对您有所帮助。
问题与不正确的负载有关。
我得到的是 content-available
外部 aps 而不是它应该是 aps 的一部分。
不正确的负载:
{
"_" = "asd-dfsd-werdsf";
aps = {
};
"content-available" = 1;
}
正确的负载:
{
"_" = "asd-dfsd-werdsf";
aps = {
"content-available" = 1;
};
}
所以我添加了 didReceiveRemoteNotification
委托来处理静默推送通知
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
该方法应在后台调用以在通知用户之前更新内容,以便用户可以打开应用程序并立即呈现新内容。
但是这个方法永远不会在后台调用。我试图调试问题但没有成功。令人惊讶的是,如果我的应用程序在前台,这个方法会被正确调用,我可以很容易地检查 content-available
来更新 UI.
谁能帮我解决这个问题,为什么 didReceiveRemoteNotification:fetchCompletionHandler
没有在后台调用?
在 xcode 的 'Capabilities' 选项卡的 'Background Modes' 中启用 'Remote Notifications'。
有关详细信息,请参阅此 link
希望对您有所帮助。
问题与不正确的负载有关。
我得到的是 content-available
外部 aps 而不是它应该是 aps 的一部分。
不正确的负载:
{
"_" = "asd-dfsd-werdsf";
aps = {
};
"content-available" = 1;
}
正确的负载:
{
"_" = "asd-dfsd-werdsf";
aps = {
"content-available" = 1;
};
}