iOS远程推送
来源:互联网 发布:淘宝网服饰长款线裙 编辑:程序博客网 时间:2024/04/29 02:34
参考:
SWIFT推送之本地推送(UILocalNotification)
手把手教你配置苹果APNS推送服务
iOS远程推送通知由远程服务器上的程序(可由任意语言编写)发送至APNs,再由APNs把消息推送至设备上对应的程序。
iOS远程推送通知的过程:
以上图示讲解:
1.Provider(服务器)程序把要发送的通知、目标iPhone的device token
(相当于该设备的唯一标识)打包,发送给APNs。
2.APNs通过已注册Push服务的iPhone列表查找具有对应device token
的iPhone,并把Push通知发送给对应的iPhone。
3.iPhone将收到的Push通知传递给对应的应用程序,并且按照设定弹出Push通知。
一.开发Push客户端应用
Push客户端应用需要三个组件:
- APP ID(应用程序唯一标识)
- Provisioning Profile
- device token(当Push客户端应用注册Push推送通知成功时,APNs将会返回该设备的device token)
下面,一步一步地进行操作
1.生成”证书签名请求文件”,文件后缀名是.certSigningRequest
,即CSR文件
打开”钥匙串访问”应用程序,按图示操作:
常用名称随意写一个,我这里以”flower”为例子
点击”继续”,会生成创建一个”Certificate Signing Request”证书签名请求文件。
生成的文件如下:
2.创建APP ID(要购买开发者账号)
进入https://developer.apple.com/account/overview.action,界面如下:
按照步骤”ios Apps —— Identifiers —– Apps IDs”:来到图示
点击+符号,添加:
注意:这里的Bundle ID和我们创建应用所用的Bundle Identifier要相同。
所以,我们在网站上创建的App ID是com.ccmobile.Flower
3.利用第1步产生的.CSR文件,为我们刚刚创建的App ID创建开发证书
可以修改我们的App ID配置文件,使其支持远程推送功能。
勾选”Push Notifications”后,会出现两个”Create Certificate…”。我们选择开发阶段的。(发布时当然要创建发布版本的)
上传.CSR文件,创建开发证书:
创建好后,如图
下载:
文件的后缀名是.cer,双击该文件,OS X 会自动打开”钥匙串访问”程序,将证书添加到系统中。
4.创建Provisioning Profile文件,选择Provisioning Profile的类型
点击+号可以添加:选择你想要创建Provisioning Profile的APP ID
进行一系列步骤,即可完成:
文件后缀名为:.mobileprovision
当然,我们还要在Xcode中进行配置:
下面开始在Xcode中写代码了:
Appdelegate.swift代码
import UIKit@UIApplicationMainclass AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { //注册远程通知 application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [UIUserNotificationType.Sound,UIUserNotificationType.Badge,UIUserNotificationType.Alert], categories: nil)) application.registerForRemoteNotifications() return true } //通过该代理方法获取deviceToken func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) { print("\(deviceToken)") } //请求失败时调用该方法 func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) { print("error") } func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) { print("\(userInfo.description)") } func applicationWillResignActive(application: UIApplication) { } func applicationDidEnterBackground(application: UIApplication) { } func applicationWillEnterForeground(application: UIApplication) { } func applicationDidBecomeActive(application: UIApplication) { } func applicationWillTerminate(application: UIApplication) { }}
二.开发服务器端程序
我们可以在网络上找到各种语言编写的类来调用。
- iOS推送之远程推送
- iOS推送之远程推送
- iOS推送之远程推送
- ios推送之远程推送
- iOS推送之远程推送
- iOS推送之远程推送
- iOS 远程推送通知
- iOS远程推送通知
- IOS远程推送通知
- iOS远程消息推送
- ios远程推送笔记
- 【iOS】远程消息推送
- iOS远程推送注意事项
- ios远程推送
- ios远程消息推送。
- iOS开发 远程推送
- iOS的远程推送
- ios之远程推送
- 北电收购Pingtel 志在统一通信
- Pingtel将开放其企业级VoIP软件代码
- Java任意同类型对象的复制
- AVAYA完成北电企业网收购 30天内公布更多细节
- hdoj2056(Rectangles 求矩形重叠面积
- iOS远程推送
- storyboard presentViewController pushViewController 跳转后黑屏 NavigationBar按钮push
- Luajit 2.0.4 绑定 protoc-gen-lua (Windows 平台)
- WebView遇到<pre>不正常显示
- 流
- SipXtapi
- OS X10.11上安装cocoapods
- reSIProcate
- CounterPath