アプリがバックグラウンドにあるときでも、バックオフィスでユーザーの位置を更新しようとしているので、次の php スクリプトを呼び出して位置の更新をトリガーします。
-(void)locateUserAtLocation:(CLLocation*)location{
NSDictionary* dict=[self getCurrentAppAndUrlDictionary];
NSString* app=[dict objectForKey:@"app"];
float latitude=location.coordinate.latitude;
float longitude=location.coordinate.longitude;
NSString* language=[[NSLocale currentLocale] localeIdentifier];
NSString* nickName=[[NSUserDefaults standardUserDefaults] objectForKey:@"nickname"];
NSString* myUdid= [udid sharedUdid];
NSString *insertUrlString =[NSString stringWithFormat: @"http://www.miafoto.it/iPhone/inarrivo/taxi/insertUserNew.php?udid=%@&token=%@&nickname=%@&app=%@&language=%@&Latitude=%f&Longitude=%f&new=1",myUdid, token, nickName, app, language, latitude, longitude];
NSLog(@"url=%@", insertUrlString);
NSURLSessionDownloadTask *insertTask = [[self backgroundSession] downloadTaskWithURL: [NSURL URLWithString:insertUrlString]];
[insertTask resume];
}
しかし、エラーが発生します: バックグラウンド ダウンロードの URL スキームが無効です: (null)。有効なスキームは http または http で、フォアグラウンドまたはバックグラウンドで URL は送信されません。Web で検索したところ、この問題に対処するヒットは見つかりませんでした。また、問題を Apple サポートに提出しました。