iOS 极光推送

证书的制作就不说了,下面看看怎么使用极光推送进行远程推送

一、配置

  1. 在极光官网注册极光推送
    2.创建一个应用
    在应用配置中导入开发证书和生产证书(我这是已经验证了的,不然就是让你上传证书的按钮)
    Bundle ID是导入证书后自动出现的,证书最好一个一个上传不然可能会出现验证失败的问题.


    1.png

    导入两个证书
    3.然后下载SDK
    把SDK中的Lib文件夹导入你的项目中,记得勾选Copy


    2.png

    4.在Build Phases中导入以下库
3.png

5.在Build Phases中导入以下库
修改Capabilities

![Uploading 5_046020.png . . .] 1. 打开远程推送


4.png

2. 打开Background Modes

7.png

3.修改Bundle ID 以及选择Team

5.png

二、代码部分

在Appdelegate.m中导入头文件

import "JPUSHService.h"

1、在didFinishLaunchingWithOptions方法中写入以下代码,有的地方要按你自己的信息填

// Required
if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {

//可以添加自定义categories
[JPUSHService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge |UIUserNotificationTypeSound |UIUserNotificationTypeAlert)categories:nil];

} else {

//categories 必须为nil
[JPUSHService registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |UIRemoteNotificationTypeSound |UIRemoteNotificationTypeAlert)categories:nil];

}

[JPUSHService setupWithOption:launchOptions appKey:@“appKey”, channel:@""(这个不填就行) apsForProduction:这个值生产环境为YES,开发环境为NO(BOOL值)];

2、

  • (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {

//这个方法是设置别名和tag 可省
// [JPUSHService setTags:nil alias:@"WzxJiang" fetchCompletionHandle:^(int iResCode, NSSet *iTags, NSString *iAlias) {
// NSLog(@"rescode: %d, \ntags: %@, \nalias: %@\n", iResCode, iTags , iAlias);

}];

// Required
[JPUSHService registerDeviceToken:deviceToken];

}

3、 App在后台时收到推送时的处理

  • (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {

//iOS 7及之后才能用,现在没人适配iOS6了吧...
// IOS 7 Support Required
[JPUSHService handleRemoteNotification:userInfo];
completionHandler(UIBackgroundFetchResultNewData);
}

4、 在applicationWillEnterForeground方法(App即将进入前台)中将小红点清除

  • (void)applicationWillEnterForeground:(UIApplication *)application {

NSLog(@"进入前台");
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
}

5、 处理接收推送错误的情况(一般不会...)

  • (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {

//Optional
NSLog(@"did Fail To Register For Remote Notifications With Error: %@", error);

}

三、测试推送
现在推送以下,(注意只能是真机调试)

在极光上点击发送通知,注意是开发环境

11.png

点击确认推送就能在手机上看到了推送内容了

四、遇到的问题

配置好Xcode后编译出现一下问题

屏幕快照 2016-11-04 下午1.14.32.png

这样的错误,是由于缺少库:
添加libresolv.dylib库,就可以了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最近想把自己写的极光推送遇到的一些问题列在这里,以便那些遇到推送问题的砖友们跳出这些坑. 第一步 当然是证书的问...
    进阶的蚊子阅读 10,976评论 0 8
  • 由于配置证书和注册极光应用配置网上已经很多了所以在这里就不在多说了!!! 1.首先我们要先将从极光官网上下载来的最...
    海岸没有沙阅读 11,386评论 3 3
  • 首先肯定要先去极光进行最基本的注册,注册完在商品应用管理找到对应的 应用点击进去,点击iOS 把生产证书还有开发证...
    花开花非花阅读 3,579评论 1 1
  • 极光推送和百度比起来较为简单,但是很有新手对于集成极光推送时配置证书比较晕头转向,也没有太小白的教程,所以写了这个...
    Roct阅读 4,910评论 1 17
  • 在平静的生活中,突如其来的意外是那么的突兀,简单而平凡,惊悸而惨烈,这一鲜明的对比是那么的震摄人心,就像是温泉下的...
    古龙之后可有浪子阅读 851评论 0 0