1

私のアプリでは、webview を使用しています。このチュートリアルに従って、通知を実装しました。

http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1

私のウェブサイトでは、db に追加された新しいイベントをチェックする js コードを使用しています。

function checkNotification() 
{
  $.ajax({
           url: '/checkNewMessages',
           type: "GET",
           success: function (result) 
           {
              // if new event, then I run the #c code below to tell
              // the APN server to send the notif to the device.
           }
         });
}

通知を送信するには、#c コードを使用しています。

var deviceToken = "2191a536a52445046797a871fe3c4cf...";
var message = "this is a notification.";
var badge = 1;
var password = "blablabla";
var payload = new NotificationPayload(deviceToken, message, badge);
var notificationList = new List<NotificationPayload>() { payload };
var push = new PushNotification(true, "apn_developer_identity.p12", password);
var result = push.SendToApple(notificationList);

そして、これを10000ミリ秒ごとにチェックします

setInterval(checkNotification, 10000);

ただし、この js コードは、ユーザーがアプリを使用している場合にのみ実行されます。アプリが実行されていないときはどうなりますか? ユーザーは通知を受け取ることができませんか? データベースで新しいイベントをチェックするバックグラウンドで常に実行されているスクリプトが必要です。これを行う最善の方法は何ですか? ご協力いただきありがとうございます。

4

1 に答える 1

1

プッシュ通知はアプリではなく iOS によって処理されるため、サーバーがユーザー アプリにプッシュ通知を送信すると、ユーザーはそれを受け取るだけです。

ユーザーが通知を使用してアプリを開いた場合にのみ、アプリを開くために使用された通知を検出できます。で を開くために使用される通知を確認します。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
   NSDictionary *remoteNotif =[launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
    if (remoteNotif) {
       /* handle the notification.
    }
}   

バックグラウンドでプッシュ通知を監視する方法はありません。

于 2013-07-08T10:38:14.413 に答える