介绍一下,使用极光进行程序推送的使用步骤。
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 *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSLog(@"%@", [NSString stringWithFormat:@"Device Token: %@", deviceToken]);
[APService registerDeviceToken:deviceToken];
}
- (void)application:(UIApplication *)application
didFailToRegisterForRemoteNotificationsWithError:(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 *)application
didRegisterUserNotificationSettings:
(UIUserNotificationSettings *)notificationSettings {
}
- (void)application:(UIApplication *)application
handleActionWithIdentifier:(NSString *)identifier
forLocalNotification:(UILocalNotification *)notification
completionHandler:(void (^)())completionHandler {
}
- (void)application:(UIApplication *)application
handleActionWithIdentifier:(NSString *)identifier
forRemoteNotification:(NSDictionary *)userInfo
completionHandler:(void (^)())completionHandler {
}
#endif
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo {
[APService handleRemoteNotification:userInfo];
NSLog(@"收到通知:%@", [self logDic:userInfo]);
}
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:
(void (^)(UIBackgroundFetchResult))completionHandler {
[APService handleRemoteNotification:userInfo];
NSLog(@"收到通知:%@", [self logDic:userInfo]);
completionHandler(UIBackgroundFetchResultNewData);
}
- (void)application:(UIApplication *)application
didReceiveLocalNotification:(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
继续下载这个文件,并双击
就可以跑到手机上测试一下啦,然后到极光推送平台发送条消息测试一下,