IOS开发使用极光平台进行远程推送

来源:互联网 发布:图书管理系统php 编辑:程序博客网 时间:2024/06/11 03:21

介绍一下,使用极光进行程序推送的使用步骤。
1.https://www.jpush.cn/common/到极光推送平台官方网站上下载最新的SDK。
2.Xcode创建一个工程,我这里测试工程名字为LTCsdnTest,然后到苹果开发者中心创建一个APPID
这里写图片描述并在这一项中选中Push Notifications(也就是苹果推送服务)
3.APPID创建完毕这时候就要下载证书了,点击Developement
并选择Apple Push Notification service SSL (Sandbox)然后点击继续到这个界面
这里写图片描述
选择你刚才的创建的那个APPID,点击继续
这里写图片描述
这时打开钥匙串,选择菜单 钥匙串访问 ->证书助理->从证书颁发机构请求证书,把得到的证书上传即可,成功后显示如下界面
这里写图片描述把证书下载下来,双击添加到钥匙串中,在钥匙串中找到这个证书
这里写图片描述
右键点击到出,得到一个P12文件,然后到极光官网创建一个应用程序
这里写图片描述
由于这里只做开发测试,所以上传一个IOS开发证书即可,其它根据需要上传,点击创建,成功之后显示这个界面
这里写图片描述
,保存这个AppKey
4。在LTCsdnTest中创建一个plist文件,文件名为PushConfig.plist
注意文件名必须为PushConfig,内容如下图所示,把AppKey换成你自己的key
这里写图片描述
5.把极光的SDK导入工程中,并添加如下系统库
这里写图片描述
6.在APPDelegate中导入头文件#import “APService.h”,并在添加如下代码

//在这个方法中添加补充如下代码- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];    [APService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge |UIUserNotificationTypeSound |UIUserNotificationTypeAlert)categories:nil];    [[UIApplication sharedApplication] registerForRemoteNotifications];    [APService setupWithOption:launchOptions];    return YES;}

以下方法实现向苹果APNS发送DeviceToken以及其它一些代理方法

- (void)application:(UIApplication *)applicationdidRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {    NSLog(@"%@", [NSString stringWithFormat:@"Device Token: %@", deviceToken]);    [APService registerDeviceToken:deviceToken];}- (void)application:(UIApplication *)applicationdidFailToRegisterForRemoteNotificationsWithError:(NSError *)error {    NSLog(@"did Fail To Register For Remote Notifications With Error: %@", error);}#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_7_1- (void)application:(UIApplication *)applicationdidRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings {}- (void)application:(UIApplication *)applicationhandleActionWithIdentifier:(NSString *)identifierforLocalNotification:(UILocalNotification *)notification  completionHandler:(void (^)())completionHandler {}- (void)application:(UIApplication *)applicationhandleActionWithIdentifier:(NSString *)identifierforRemoteNotification:(NSDictionary *)userInfo  completionHandler:(void (^)())completionHandler {}#endif- (void)application:(UIApplication *)applicationdidReceiveRemoteNotification:(NSDictionary *)userInfo {    [APService handleRemoteNotification:userInfo];    NSLog(@"收到通知:%@", [self logDic:userInfo]);}- (void)application:(UIApplication *)applicationdidReceiveRemoteNotification:(NSDictionary *)userInfofetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {    [APService handleRemoteNotification:userInfo];    NSLog(@"收到通知:%@", [self logDic:userInfo]);    completionHandler(UIBackgroundFetchResultNewData);}- (void)application:(UIApplication *)applicationdidReceiveLocalNotification:(UILocalNotification *)notification {    [APService showLocalNotificationAtFront:notification identifierKey:nil];}- (NSString *)logDic:(NSDictionary *)dic {    if (![dic count]) {        return nil;    }    NSString *tempStr1 =    [[dic description] stringByReplacingOccurrencesOfString:@"\\u"                                                 withString:@"\\U"];    NSString *tempStr2 =    [tempStr1 stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];    NSString *tempStr3 =    [[@"\"" stringByAppendingString:tempStr2] stringByAppendingString:@"\""];    NSData *tempData = [tempStr3 dataUsingEncoding:NSUTF8StringEncoding];    NSString *str =    [NSPropertyListSerialization propertyListFromData:tempData                                     mutabilityOption:NSPropertyListImmutable                                               format:NULL                                     errorDescription:NULL];    return str;}

7.然后到刚才的苹果开发者界面选择Provisioning Profiles栏的Development
这里写图片描述
点击+号继续
这里写图片描述
选择刚才的APP ID创建一个齿轮形状的prov文件,
这里写图片描述
继续下一步,选择开发者,选择所有想推送的设备,这里可以选择所有,下一步到这个界面,可以随便填一个名字,这里我填了LTCsdnTest
这里写图片描述
继续下载这个文件,并双击
这里写图片描述
就可以跑到手机上测试一下啦,然后到极光推送平台发送条消息测试一下,

0 0