1

对于我的应用程序,我使用的是 webview。我已经按照本教程实施了通知:

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

在我的网站中,我使用一个 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 回答