アプリを開発していて、サイレントプッシュ通知を使用してデータを送信しています。アプリがアクティブなときにプッシュが正常に機能していますが、アプリをスワイプするか、アクティブでない場合、アプリはプッシュ通知を受信していません。私は能力の下でバックグラウンドモードでのプッシュ通知を有効にしても、Info.plistのアプリが非アクティブのときにサイレント通知を受け取ることができませんiOS
これは私がプッシュと一緒に送付していますどのようなサンプルデータ
{
"aps": {
"content-available": 1
},
"yourdatakey":{data}
}
は私が修正するために何をすべきである、必要なバックグラウンドモードキーを追加しましたこの問題?.. iOSアプリは、非アクティブモードでサイレントプッシュ通知を受け取ることはできますか?
-(void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void(^)(UIBackgroundFetchResult))completionHandler
{
if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"10.0"))
{
NSLog(@"iOS version >= 10. Let NotificationCenter handle this one.");
return;
}
NSLog(@"HANDLE PUSH, didReceiveRemoteNotification: %@", userInfo);
if([UIApplication sharedApplication].applicationState == UIApplicationStateInactive)
{
NSLog(@"INACTIVE");
completionHandler(UIBackgroundFetchResultNewData);
}
else if([UIApplication sharedApplication].applicationState == UIApplicationStateBackground)
{
NSLog(@"BACKGROUND");
completionHandler(UIBackgroundFetchResultNewData);
}
else
{
NSLog(@"FOREGROUND");
completionHandler(UIBackgroundFetchResultNewData);
}
}
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
willPresentNotification:(UNNotification *)notification
withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler
{
NSLog(@"Handle push from foreground");
}
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
didReceiveNotificationResponse:(UNNotificationResponse *)response
withCompletionHandler:(void (^)())completionHandler
{
NSLog(@"Handle push from background or closed");
}
プッシュは私のアプリでは重要な役割を果たしており、遅延を望んでいません。私にとって
{
"to" : "<DEVICE_ID>",
"priority" : "high",
"content_available" : true,
"data" : { "custom_key":"custom value", "custom_key_2":"custom value 2" }
}
、この:私は??すぐにプッシュを受けるために...
通知センターにバナーが表示されますか? –