虽然通知经常被过度使用,但是通知确实是一种获得用户关注和通知他们需要更新或行动的有效方式。iOS 10有了新的通知,如新消息、商业信息和时间表的变化。在本教程中,我将向你展示如何使用通知在你的iOS应用程序,并且显示iOS 10引入了新特性。开发iOS 10推送通知你需要最新版本的Xcode,Xcode 8测试版,这些目前都是可下载的,在页面。
你可以去Github下载本教程的整个工程。
开始
在Xcode中启用推送通知是很容易的,但你需要几个步骤。
创建一个新的工程,给它起一个唯一的Bundle Identifier.
当您已经创建了project,去Project Settings页选择Capabilities栏。打开推送通知,如下所示。
注意: 如果你是苹果的付费开发者成员,你就能看到推送通知功能这一栏。
去Developer Account这一栏,从左侧的菜单栏中选择证书,IDs,和描述文件,然后选择App IDs在Identifiers栏中。找到已经创建的App的名称,在服务列表中选中。注意,有两个可配置状态的推送通知。
不要关闭这个网页,你很快就会回来的。
发送通知
在本文中,我将使用Pusher发送推送通知。您还可以使用其他的解决方案如Houston。无论哪种方式,发送一个通知,你都需要一个证书。
去创建一个证书,打开Keychain Access,从证书认证菜单中选择Keychain Access -> Certificate Assistant -> Request a Certificate。
填写表单并单击Continue。确保你选择保存到了磁盘。
返回到开发者账户的网页。你可以为你的App IDs生成开发(调试)证书或发布证书。
之后在选择右侧的申请,在底部,单击编辑。在推送通知部分,单击创建开发(调试)证书。
在需要时,从Keychain,继续上传生成证书请求。
现在你已经创建了证书,可以下载它。打开下载的文件安装它。
下载并运行Pusher。这个程序的顶部需要填入一个推送的证书。为它位于你的钥匙链,OS X将询问是否允许Pusher访问证书。
第二个字段需要device token,你会在下一步中得打它。
收到通知
是时候敲代码了。收到通知的设备必须注册到苹果推送通知服务(APNS)。在应用启动的时候你要发送一个唯一的token。
打开AppDelegate.swift然后添加如下方法。
注意:该代码是基于Swift3.0。语法可能看起来不同于你之前使用过的。
func registerPushNotifications() { DispatchQueue.main.async { let settings = UIUserNotificationSettings(types: [.badge, .sound, .alert], categories: nil) UIApplication.shared().registerUserNotificationSettings(settings) } }
我之后会解释,在这个设置中你会收到指定的通知类型。调用这个方法在应用程序启动的的文件里。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { registerPushNotifications() return true }
此时,应用程序将自动弹出一个Alert,询问用户是否要收到该通知。
通知必须被注册,才能发送,而是否接受通知则需要用户批准。UIApplicationDelegate方法处理响应。
func application(_ application: UIApplication, didRegister notificationSettings: UIUserNotificationSettings) { if notificationSettings.types != UIUserNotificationType() { application.registerForRemoteNotifications() } }