2

プッシュ通知を使用してアプリをコーディングしたことがなく、非常に一般的な質問があります。「プルして更新」や他のユーザーの操作なしで、(Web サービスからの) UITableview のデータを自動的に更新したいと思います。帯域幅とバッテリーを浪費する xx 秒ごとのポーリングを避けるために、プッシュ通知を使用してアプリにデータの変更を通知することは可能ですか?

つまり、アプリがフォアグラウンドで実行されている間 (おそらく)、メッセージを処理でき、ユーザーはポップアップを受信しませんが、それ以外の場合はどうなりますか?

同じ結果を達成する他の方法はありますか?

IOS 5.0+ を使用する予定です

前もって感謝します

4

2 に答える 2

4

変更があった場合にのみ何かを返すサーバー HTTP リクエストを作成できます。この応答が空でない場合は、データをリロードできます。NSTimer で呼び出すことができる関数。

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(get) userInfo:nil repeats:YES];

-(void)get {
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://example.com/app.php"]];
    [[NSURLConnection alloc] initWithRequest:request delegate:self];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    if(![responseString isEqualToString:@""]) {
    // reload
    }
}
于 2012-04-10T11:58:51.280 に答える
1

アプリの実行中に、プッシュ通知を受け取るように登録できます。次に、メソッドを実装して、テーブルビューを更新するだけです。

- (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)notif {

Apple によってかなりよく文書化されています。

于 2012-04-10T12:00:59.347 に答える