1

私のアプリでは、プッシュ通知ではなくローカル通知を使用する予定です。トランザクションの更新が利用可能かどうかを確認する必要があります。利用できる場合は、ローカル通知でユーザーに通知するだけです。以下の手順を実行しました。

  1. didFinishLaunchingWithOptions、フェッチ間隔を設定します[[UIApplication sharedApplication]setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum]
  2. -(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {

> POST リクエストのコードを以下のようにリクエスト データとともに追加しました。

NSURLConnection *conn = [[NSURLConnection alloc]initWithRequest:request delegate:self];

if(conn) {
    completionHandler(UIBackgroundFetchResultNewData);
}
 else {
    completionHandler(UIBackgroundFetchResultFailed);
}
  1. 応答の解析後、更新があるかどうかと更新があるかどうかを比較すると、次のコードを使用して通知が表示されます。

    UILocalNotification* localNotification = [[UILocalNotification alloc] init]; localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:1];
    localNotification.timeZone = [NSTimeZone defaultTimeZone];
    localNotification.alertTitle = @"SIB Mirror";
    localNotification.alertBody = @"You have a new transaction. Go to e-Statements to view it.";
    localNotification.timeZone = [NSTimeZone defaultTimeZone];
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
    

問題はほとんどの場合、電話がロックされているときにエラー メッセージ >Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost." が表示されることです。

そのため、通知が表示されませんでした。しかし、電話を電話に直接接続し、デバッグ モードでバックグラウンド同期を有効にすると、すべてが正常に機能します。

これを行うための簡単な方法を教えてください。または、間違っていることがあれば修正してください。

ありがとう、

モバイル開発者。

4

3 に答える 3

0

完了ハンドラで POST リクエストを試してください。

于 2016-06-03T06:44:24.273 に答える