2024年2月9日发(作者:)

iOS SDK 集成指南使用提示本文匹配的 SDK版本:r1.2.5 以后。查看最近更新了解最新的SDK更新情况。产品功能说明极光推送(JPush)是一个端到端的推送服务,使得服务器端消息能够及时地推送到终端用户手机上,让开发者积极地保持与用户的连接,从而提高用户活跃度、提高应用的留存率。极光推送客户端支持 Android, iOS两个平台。本 iOS SDK 方便开发者基于 JPush 来快捷地为 iOS App 增加推送功能,减少集成 APNs需要的工作量、开发复杂度。主要功能为 JPush Server 上报 Device Token,免除开发者管理 Device Token 的麻烦应用运行时,应用内 JPush 长连接可以持续地收到推送消息主要特点集成简单iOS SDK 集成后,服务器端向 iOS 设备推送简单方便集成压缩包内容包名为JPush-iOS-SDK-[版本号]lib文件夹:包含头文件 APService.h,静态库文件 libPushSDK.a ,支持的iOS版本为 5.0及以上版本。(请注意:模拟器不能实现APNS)pdf文件:开发指南demo文件夹:示例开发环境使用 XCode 6 版本运行IOS8版本SDK,Xcode 5运行非IOS8版本SDKSDK集成步骤1、在JPush Portal上创建应用在JPush的管理Portal上 上传证书并创建应用。如果对APNs证书不太了解 请参考 iOS 证书设置指南

创建成功后自动生成 AppKey 用以标识该应用。2、导入API开发包到应用程序项目将SDK包解压,在XCode中选择“Add files to 'Your projectname'...”,将解压后的lib子文件夹(包含APService.h、libPushSDK.a)添加到你的工程目录中。3、必要的框架ork

4、Build Settings设置 Search Paths 下的 User Header Search Paths 和 Library SearchPaths,比如SDK文件夹(默认为lib)与工程文件在同一级目录下,则都设置为"$(SRCROOT)/[文件夹名称]"即可。5、创建并配置文件在你的工程中创建一个新的PropertyList文件,并将其命名为,填入Portal为你的应用提供的APP_KEY等参数。{ "APS_FOR_PRODUCTION = "0"; "CHANNEL" = "Publish channel"; "APP_KEY" = "AppKey copied from JPush Portal application";}CHANNEL指明应用程序包的下载渠道,为方便分渠道统计。根据你的需求自行定义即可。APP_KEY在管理Portal上创建应用时自动生成的(AppKey)用以标识该应用。请确保应用内配置的 AppKey与第1步在 Portal 上创建应用时生成的 AppKey 一致,AppKey 可以在应用详情中查询。APS_FOR_PRODUCTION1.3.1版本新增,表示应用是否采用生产证书发布( Ad_Hoc 或 APP Store ),0(默认值)表示采用的是开发者证书,1 表示采用生产证书发布应用。请注意此处配置与 Web Portal应用环境设置匹配。在1.2.2或之前版本的配置文件中,有 TEST_MODE 这个键,新版的SDK不再使用,可以将它删除。6、添加代码APIAPIs 主要集中在 APService 接口类里。

@interface APService : NSObject// init Push+ (void)setupWithOption:(NSDictionary *)launchingOption;// register notification type+ (void)registerForRemoteNotificationTypes:(NSUInteger)types categories:(NSSet *)categories; // APNS// upload device token+ (void)registerDeviceToken:(NSData *)deviceToken;// handle notification recieved+ (void)handleRemoteNotification:(NSDictionary *)remoteInfo;@end调用代码监听系统事件,相应地调用 JPush SDK 提供的 API 来实现功能。以下 3 个事件监听与调用 JPush SDK API 都是必须的。请直接复制如下代码块里,注释为 "Required"的行,到你的应用程序代理类里相应的监听方法里。- (BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen]bounds]] autorelease]; oundColor = [UIColor whiteColor]; [ makeKeyAndVisible];

// Required#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_7_1 if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) { //categories [APServiceregisterForRemoteNotificationTypes:(UIUserNotificationTypeBadge |

UIUserNotificationTypeSound |

UIUserNotificationTypeAlert) categories:nil]; } else { //categories nil [APServiceregisterForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |

UIRemoteNotificationTypeSound |

UIRemoteNotificationTypeAlert) categories:nil];#else //categories nil [APServiceregisterForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |

UIRemoteNotificationTypeSound |

UIRemoteNotificationTypeAlert) categories:nil];#endif // Required [APService setupWithOption:launchOptions];

return YES;}- (void)application:(UIApplication *)applicationdidRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {

// Required [APService registerDeviceToken:deviceToken];}- (void)application:(UIApplication *)applicationdidReceiveRemoteNotification:(NSDictionary *)userInfo {

// Required [APService handleRemoteNotification:userInfo];}

- (void)application:(UIApplication *)applicationdidReceiveRemoteNotification:(NSDictionary *)userInfofetchCompletionHandler:(void(^)(UIBackgroundFetchResult))completionHandler { // IOS 7 Support Required

[APService handleRemoteNotification:userInfo]; completionHandler(UIBackgroundFetchResultNewData);}监听通知API里面提供了下面 5 种类型的通知:extern NSString * const kAPNetworkDidSetupNotification; // 建立连接extern NSString * const kAPNetworkDidCloseNotification; // 关闭连接extern NSString * const kAPNetworkDidRegisterNotification; // 注册成功extern NSString * const kAPNetworkDidLoginNotification; // 登录成功extern NSString * const kAPNetworkDidReceiveMessageNotification; // 收到消息(非APNS)其中,kAPNetworkDidReceiveMessageNotification通知是有传递数据的,可以通过NSNotification中的userInfo方法获取,包括标题、内容、内容类型、扩展信息等高级功能请参考:标签与别名API页面的统计技术支持邮件联系:support@问答社区:/qa/

使用提示产品功能说明主要功能主要特点集成压缩包内容开发环境SDK集成步骤1、在JPushPortal上创建应用2、导入API开发包到应用程序项目3、必要的框架4、Build Settings5、创建并配置Push

文件6、添加代码API调用代码监听通知高级功能技术支持