iOS でのバックグラウンド フェッチ用のテスト アプリを作成しました。そして、Debug -> Simulate Background fetch を介してシミュレーターで正常に動作します。しかし、iOS 8 を搭載したデバイスでは、1 日に 1 回しか呼び出されませんでした。iOSにもっと頻繁に呼び出すように強制する方法は?
私の手順とコードは次のとおりです。
1) プロジェクト -> 機能 -> バックグラウンド モード -> バックグラウンド フェッチ
2) AppDelegate:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];
}
- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
[[UIApplication sharedApplication] cancelAllLocalNotifications];
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
NSDate *now = [NSDate date];
localNotification.fireDate = now;
localNotification.alertBody = [NSString stringWithFormat:@"Background fetch!"];
localNotification.soundName = UILocalNotificationDefaultSoundName;
NSInteger number = [UIApplication sharedApplication].applicationIconBadgeNumber;
number++;
localNotification.applicationIconBadgeNumber = number;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
completionHandler(UIBackgroundFetchResultNewData);
}
バックグラウンド フェッチが呼び出されるたびに、ローカル通知が表示される必要があります。