ImageVerifierCode 换一换
格式:DOCX , 页数:4 ,大小:23.10KB ,
资源ID:2420655      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-2420655.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(IOS推送功能的实现(javapns).docx)为本站会员(hw****26)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

IOS推送功能的实现(javapns).docx

1、101 文章 - 6 评论 - 100 IOS 推送功能的实现( javapns) IOS 的推送实现由这样几步来完成 : 1. 创建 Push SSL Certification 2. IOS 客户端注册 Push 功能并获得 DeviceToken 3. 使用 Provider 向 APNS 发送 Push 消息 4. IOS 客户端接收处理由 APNS 发来的消息 创建 Push SSL Certification 登录 ,创建新的 App ID,要求此 ID 的 Bundle Identifier 不包含通配符,否则不能启用 Push 以及 IAP 功能。例如 com.soso.sos

2、oimage。 在 App IDs 列表页面,点击刚创建的 app id 右面的 Configure 链接,进入 Configure App ID 界面,选中 “Enable for App Push Notification service“。点击 Development Push SSL Certificate 一行的 Configure 按钮,弹出 “Apple Push Notification service SSL Certificate Assistant“对话框,依对话框操作,类似于创建开发或发布用的 Certificate。 最终将 Development Push SSL

3、Certificate 下载并安装到本地 Keychain Access。导出成 p12 文件,备用。导出时需要设置密码,不得为空。 在 ,创建一个新的 Provisioning Profile,使用我们刚刚创建的支持 Push 功能的 App ID。下载并安装到本地。 IOS 客户端注册 Push 功能并获得 DeviceToken 创建本地工程, info.plist 中设置 Bundle identifier 为刚刚创建的 Bundle Id。 Com.soso.sosoimage。设定 Code Signing Identity 为刚刚创建的 Provisioning Profile。

4、 程序第一次执行的时候,调用如下代码 . UIApplication sharedApplication registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound); 三个参数分别代表消息(横幅或提醒,由用户 Setting 决定,程序不可更改)、数字标记、声音。 在 AppDelegate.m 中添加两个方法 . /iPhone 从 APNs 服务器获取 deviceToken 后回 调此方法

5、 - (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken NSString* dt = deviceToken description stringByTrimmingCharactersInSet:NSCharacterSet characterSetWithCharactersInString:“; NSLog(“deviceToken:%“, dt); /注册 push 功能失败 后 返回错误信息,执行相应的处理 - (v

6、oid)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err NSLog(“Push Register Error:%“, err.description); 获取 DeviceToken 后,将其传给 Provider。 使用 Provider 向 APNS 发送 Push 消息 Provider,将推送信息发送给 APNS(苹果推送服务器)的程序。有很多开源的实现,我们使用 javapns ( http:/ )。 首先, Provider 要有目标 D

7、eviceToken,这是发送目标,由客户端传给 Provider 之后存在某处。 安装 javapns,需要导入的 jar 为 bcprov-jdk15-146.jar, log4j-1.2.15.jar, JavaPNS_2.3_Alpha_5.jar。 将前面导出的 P12 文件放在 Provider 的工程目录下。 Provider 向 APNS 发送消息可以参考 javapns 中 NotificationTest.java。也可以参考如下例子。 (1)使客户端图标显示数字标记 Push.badge(2, keystore, password, false, “7bb8d508e32

8、df651c6c239439737dbd40a88d2461ad2ac1e5dbe49ecea5ccc67“); 其中, 2 为要显示的数字; String keystore = “PushCertificates.p12“; /P12 文件的路径; String password = “sosoimage“; /P12 文件的密码; false,指的是使用测试环境,使用正式产品环境应传入 true. “7bb8d508e32df651c6c239439737dbd40a88d2461ad2ac1e5dbe49ecea5ccc67“为客户端获得并传给 Provider 的 DeviceToke

9、n,此参数还可以传入 String对象,以同时向多个客户端 Push 消息。 (2)使客户端显示横幅或提醒 Provider 可以向客户端 Push 一条 Message,但客户端有权限决定这条 Message 的显示方式(无、横幅、提醒)。 Push.alert(“A Message“, keystore, password, )false, “7bb8d508e32df651c6c239439737dbd40a88d2461ad2ac1e5dbe49ecea5ccc67“); (3)混合方式 可以在一个 Push 消息里附带多种信息, Message, 标记,声音,可以使用如下代码 . P

10、ushNotificationPayload payload = PushNotificationPplex(); payload.addAlert(“A Message“); payload.addBadge(2); payload.addSound(“test.aiff“); Push.payload(payload, , keystore, password, false, “7bb8d508e32df651c6c239439737dbd40a88d2461ad2ac1e5dbe49ecea5ccc67“); 上面的代码都有可能会有相应的 Exception 抛出来,需要处理。更多的使用

11、方式可以参考 http:/ IOS 客户端接收处理由 APNS 发来的消息 (1)当程序未启动,用户接收到消息。需要在 AppDelegate 中的 didFinishLaunchingWithOptions 得到消息内容。代码如下, - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions . NSDictionary* payload = launchOptions objectForKey:UIApplicationLaunchO

12、ptionsRemoteNotificationKey; if (payload) . . (2)当程序在前台运行,接收到消息不会有消息提示(提示框或横幅)。当程序运行在后台,接收到消息会有消息提示,点击消息后进入程序, AppDelegate 的 didReceiveRemoteNotification 函数会被调用(需要自己重写),消息做为此函数的参数传入,代码如下 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)payload . (3)无论在哪个函

13、数传入,消息总是一个 NSDictionary 对象,处理方式可以参考如下代码 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)payload NSLog(“remote notification: %“,payload description); NSString* alertStr = nil; NSDictionary *apsInfo = payload objectForKey:“aps“; NSObject *alert = apsInfo o

14、bjectForKey:“alert“; if (alert isKindOfClass:NSString class) alertStr = (NSString*)alert; else if (alert isKindOfClass:NSDictionary class) NSDictionary* alertDict = (NSDictionary*)alert; alertStr = alertDict objectForKey:“body“; application.applicationIconBadgeNumber = apsInfo objectForKey:“badge“ integerValue; if (application applicationState = UIApplicationStateActive alertView show;

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。