iOS8 Push Notifications

原貼地址:https://parse.com/tutorials/ios-push-notifications

github地址:https://github.com/ParsePlatform/PushTutorial


iOS Push通知已經廣泛應用於實際開發中,iOS8與之前註冊push有所不同,這裏把如何潛入代碼貼一下,以作記錄,詳情請看上面地址鏈接


Adding Code for a Push Enabled iOS Application

We are now ready to start programming. We need to make a few modification to the app delegate in order to receive push notifications.

To register the current device for push, call the method[application registerForRemoteNotifications] in the app delegate's-application:didFinishLaunchingWithOptions: method.

- (BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

  ...

  // Register for Push Notitications, if running iOS 8

  if ([applicationrespondsToSelector:@selector(registerUserNotificationSettings:)]) {

    UIUserNotificationType userNotificationTypes = (UIUserNotificationTypeAlert |

                                                    UIUserNotificationTypeBadge |

                                                    UIUserNotificationTypeSound);

    UIUserNotificationSettings *settings = [UIUserNotificationSettingssettingsForTypes:userNotificationTypes

                                                                            categories:nil];

    [application registerUserNotificationSettings:settings];

    [application registerForRemoteNotifications];

  else {

    // Register for Push Notifications before iOS 8

    [application registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |

                                                     UIRemoteNotificationTypeAlert |

                                                     UIRemoteNotificationTypeSound)];

  }

  ...

}

If the registration is successful, the callback method-application:didRegisterForRemoteNotificationsWithDeviceToken: in the application delegate will be executed. We will need to implement this method and use it to inform Parse about this new device.

- (void)application:(UIApplication *)applicationdidRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken {

  // Store the deviceToken in the current installation and save it to Parse.

  PFInstallation *currentInstallation = [PFInstallationcurrentInstallation];

  [currentInstallation setDeviceTokenFromData:deviceToken];

  currentInstallation.channels = @[@"global" ];

  [currentInstallation saveInBackground];

}

When a push notification is received while the application is not in the foreground, it is displayed in the iOS Notification Center. However, if the notification is received while the app is active, it is up to the app to handle it. To do so, we can implement the [application:didReceiveRemoteNotification] method in the app delegate. In our case, we will simply ask Parse to handle it for us. Parse will create a modal alert and display the push notification's content.

- (void)application:(UIApplication *)applicationdidReceiveRemoteNotification:(NSDictionary *)userInfo {

  [PFPush handlePush:userInfo];

}

You should now run your application (on your iOS device) to make sure everything is set up correctly. If it is, the first time you run this app you should see a modal alert requesting permission from the user to send push notifications.

發佈了59 篇原創文章 · 獲贊 48 · 訪問量 50萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章