bek*_*bay 3 cocoa apple-push-notifications ios swift
我有一个ios应用程序,我使用apns发送推送.我需要处理推送消息,如果正确则显示消息.我怎样才能迅速实现它?这是我的代码:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions:
[NSObject: AnyObject]?) -> Bool {
registerForPushNotifications(application)
return true
}
func registerForPushNotifications(application: UIApplication) {
let notificationSettings = UIUserNotificationSettings(
forTypes: [.Badge, .Sound, .Alert], categories: nil)
application.registerUserNotificationSettings(notificationSettings)
}
func application(application: UIApplication, didRegisterUserNotificationSettings notificationSettings: UIUserNotificationSettings) {
if notificationSettings.types != .None {
application.registerForRemoteNotifications()
}
}
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
let tokenChars = UnsafePointer<CChar>(deviceToken.bytes)
var tokenString = ""
for i in 0..<deviceToken.length {
tokenString += String(format: "%02.2hhx", arguments: [tokenChars[i]])
}
print("Device Token:", tokenString)
}
func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) {
print("Failed to register:", error)
}
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
}
func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) {
}
func applicationDidBecomeActive(application: UIApplication) {
UIApplication.sharedApplication().applicationIconBadgeNumber = 0
}
Run Code Online (Sandbox Code Playgroud)
在什么功能我可以处理推送通知?
Bha*_*iya 17
到达你的iOS应用程序时处理推送通知是一个棘手的部分,以充分利用它.
当推送通知到达时,您的应用程序可以进入
关闭状态 - 应用程序被杀死,运行状态 - 应用程序处于前台,暂停状态 - 应用程序处于后台,
到达时处理推送通知
让我们逐一讨论如何在每个州处理它们
封闭状态:
当应用程序关闭(某些其他应用程序正在运行或手机被锁定)时,推送通知到达,您点击它以打开应用程序.将控制appDelegate’s方法即didFinishLaunchingWithOptions:请注意,当您通常通过从手机中点按其图标来启动应用程序时.didFinishLaunchingWithOptions:首先使用launchOptions == nil调用.如果您通过单击收到的推送通知启动应用程序didFinishLaunchingWithOptions:使用其调用launchOptions!=nil.关键点如果你想在点击推送通知启动应用程序时做一些特别的事情,你需要在你的代码中添加代码didFinishLaunchingWithOptions:
像这样
if (launchOptions != nil)
{
//do some thing special e.g. display particular ViewController or Set some notification badge value.
}
Run Code Online (Sandbox Code Playgroud)
运行状态
如果您的应用程序正在运行(在前台)并且收到推送通知,则屏幕上将不显示与该通知相关的任何内容 - 没有警报,没有消息,没有声音.而是将调用appDelegate的跟随方法
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
}
Run Code Online (Sandbox Code Playgroud)
您可以根据需要实现此方法,以便您希望如何响应通知.
暂停状态
如果您的应用程序处于后台(手机已锁定或某些其他应用程序正在运行)并且已收到推送通知,则会显示声音通知,并且点击该通知应用程序将启动以下appDelegate方法被调用
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
}
Run Code Online (Sandbox Code Playgroud)
与在运行状态下收到通知时调用的相同.请注意,通过使用UIApplication的applicationState属性,您始终可以在此方法中找到您的应用是否从背景状态唤醒.在这种情况下,您可以通过推送通知从后台打开应用程序时执行一些特殊操作.
| 归档时间: |
|
| 查看次数: |
6234 次 |
| 最近记录: |