1. pod ‘JPush’
  2. 添加Framework
    CFNetwork.framework
    CoreFoundation.framework
    CoreTelephony.framework
    SystemConfiguration.framework
    CoreGraphics.framework
    Foundation.framework
    UIKit.framework
    Security.framework
    libz.tbd (Xcode7以下版本是libz.dylib)
    AdSupport.framework (获取IDFA需要;如果不使用IDFA,请不要添加)
    UserNotifications.framework (Xcode8及以上)
    libresolv.tbd (JPush 2.2.0及以上版本需要, Xcode7以下版本是libresolv.dylib)

  3. AppDelegate.m代码
//推送
#import <JPUSHService.h>
// iOS10注册APNs所需头文件
#ifdef NSFoundationVersionNumber_iOS_9_x_Max
#import <UserNotifications/UserNotifications.h>
#endif
//JPUSHRegisterDelegate代理
@interface AppDelegate ()<JPUSHRegisterDelegate>- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {//推送[self registerRemoteNotification];//测试if([jgAPNSForProduction isEqualToString:@"0"]){[JPUSHService setupWithOption:launchOptions appKey:jgAppKeychannel:@"App Store"apsForProduction:NOadvertisingIdentifier:nil];}else{//api打包[JPUSHService setupWithOption:launchOptions appKey:jgAppKeychannel:@"App Store"apsForProduction:YESadvertisingIdentifier:nil];}//获取registrationID通知[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getRegistrationID:) name:kJPFNetworkDidLoginNotification object:nil];//获取透传信息通知[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkDidReceiveMessage:) name:kJPFNetworkDidReceiveMessageNotification object:nil];}//注册APNS
- (void)registerRemoteNotification {if ([[UIDevice currentDevice].systemVersion floatValue] >= 10.0) {JPUSHRegisterEntity * entity = [[JPUSHRegisterEntity alloc] init];entity.types = UNAuthorizationOptionAlert|UNAuthorizationOptionBadge|UNAuthorizationOptionSound;[JPUSHService registerForRemoteNotificationConfig:entity delegate:self];} else 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];
}//registrationID与后台交互使用
-(void)getRegistrationID:(NSNotification *)notification
{NSString *registrationID=[JPUSHService registrationID];
//    NSLog(@"registrationID=%@",registrationID);//[self sendRegistrationID];//把registrationID传给后台
}//透传(即应用内推送)
- (void)networkDidReceiveMessage:(NSNotification *)notification{
//    NSLog(@"userinfo=%@",notification.userInfo);//收到推送,自行处理}//token
- (void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {//注册 DeviceToken[JPUSHService registerDeviceToken:deviceToken];
}//APNS
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {// Required,For systems with less than or equal to iOS6[JPUSHService handleRemoteNotification:userInfo];
}- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {// IOS 7 Support Required[JPUSHService handleRemoteNotification:userInfo];completionHandler(UIBackgroundFetchResultNewData);
}#pragma mark- JPUSHRegisterDelegate// iOS 10 Support
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(NSInteger))completionHandler {// RequiredNSDictionary * userInfo = notification.request.content.userInfo;if([notification.request.trigger isKindOfClass:[UNPushNotificationTrigger class]]) {[JPUSHService handleRemoteNotification:userInfo];}completionHandler(UNNotificationPresentationOptionAlert); // 需要执行这个方法,选择是否提醒用户,有Badge、Sound、Alert三种类型可以选择设置
}// iOS 10 Support
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler {// RequiredNSDictionary * userInfo = response.notification.request.content.userInfo;if([response.notification.request.trigger isKindOfClass:[UNPushNotificationTrigger class]]) {[JPUSHService handleRemoteNotification:userInfo];}completionHandler();  // 系统要求执行这个方法
}

iOS开发(第三方使用)——极光推送SDK接入相关推荐

  1. flutter应用开发中集成极光推送(flutter极光推送第一篇)

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 重要消息 精通点的可以查看这里 精述 Flutter 从入门实践到开发一个APP之UI基础篇 视频 flutter从入 ...

  2. iOS开发-极光推送SDK使用笔记

    推送作为一个产品必备功能,越来越得到所有人的重用,市面上做推送的第三方公司也有很多,像个推,百度,甚至友盟也出了推送功能.用什么不是我们能决定的,而是上级或产品决定的,所以我负责的项目用了极光推送,我 ...

  3. 第三方服务-极光推送

    本文写的是极光推送JAVA后台代码,小弟第一次接触推送,特此谨记,以备其他同道中人和自己日后之需 首先,POM文件,以下是极光需要的所有jar包,千万要记得极光需要slf4j的jar包,必须引入slf ...

  4. uniapp轻松集成极光推送SDK(本地插件集成和离线打包两种)

    文章目录 一.先在uniapp的插件市场下载 二.本地插件配置(可在控制台看到打印信息,方便测试) 1.配置本地插件信息 1.1 厂商信息需要在各个厂商注册后,然后填写,用处为:可在离线时,发送通知. ...

  5. Android开发——集成友盟推送SDK遇到的坑(一)

    前言 Android开发的小伙伴们一定会集成第三方SDK,这里记录一下我在遇到的集成友盟推送SDK遇到的坑. Project with path ':push' could not be found ...

  6. iOS开发之功能模块--推送之坑问题解决

    不管想不想看我后面再开发中总结的经验,但是很值得推荐一位大神写的关于苹果推送,很多内容哦:http://www.cnblogs.com/qiqibo/category/408304.html 苹果开发 ...

  7. Android 极光推送SDK集成

    1.创建JPush后台应用 在极光推送的开发者平台创建应用 输入应用包名 在应用信息那里可以看到你的APPKey 点击推送设置,设置包名(这个包名会在你的工程中用到),然后保存即可 2.下载资源 从h ...

  8. 极光推送SDK引起的内存泄露排查

    发现问题 发现推送服务的老年代不断增长,部分内存无法回收 内存泄露堆栈分析 通过运维平台ark,执行了jmap进行heaphump,使用mat工具分析,发现可能存在内存泄露 发现有大量的SocksSo ...

  9. Android接入极光推送,接入华为,小米,OPPO,VIVO厂商通道

    极光推送作用: 极光推送(JPush)是一个端到端的推送服务,使得服务器端消息能够及时地推送到终端用户手机上,让开发者积极地保持与用户的连接,从而提高用户活跃度.提高应用的留存率 主要作用: 保持与服 ...

  10. ios开发系统自带推送(ios自学笔记)

    关于ios系统子弟的推送.放在这里和大家分享 APNS的推送机制 首先我们看一下苹果官方给出的对ios推送机制的解释.如下图 Provider就是我们自己程序的后台服务器,APNS是Apple Pus ...

最新文章

  1. 面板服务器默认是什么系统,免费Linux服务器管理面板,你用的是哪个?
  2. 应用存储和持久化数据卷:核心知识
  3. 【转】MATLAB的polar函数 极坐标绘制最大半径怎样设置
  4. 神经网络优化中的Weight Averaging
  5. C#:向C++封送结构体数组
  6. 怎样获取UIWebView 的文字的高度
  7. Google Chrome Frame 谷歌浏览器框架
  8. 高效能人士的七个习惯(零)前言
  9. wordpress主题模板开发制作教程
  10. 中国成品油价为啥会比美国贵30%?
  11. 文青山在自动化测试空间的博客
  12. 【LSTM分类】基于双向长短时记忆(BiLSTM)实现数据分类含Matlab源码
  13. python-数据分析-pandas
  14. CSS第三章:8.设置元素圆角、椭圆角效果
  15. 全月加权平均的计算(分仓核算,结果反填到单据)
  16. 初学SDRAM笔记2--SDRAM的信号线及结构图
  17. seata(二) 分布式事务框架seata1.3 AT及XA模式实例演示
  18. linux将时间转换成毫秒数,linux – 将jiffies转换为毫秒
  19. Git系列(一)、Git基础教程【建议收藏】
  20. 键盘功能键F1~F2的基本功能

热门文章

  1. 最新版全自动脚本交友聊天平台挂机
  2. JAVA实现网页版斗地主_java实现斗地主小案例
  3. niceScroll相关配置参数
  4. Java中文乱码详解
  5. servlet到底是什么
  6. Wireshark数据抓包分析之FTP协议
  7. 机械--NX2007(UG)有限元分析教程2--装配体
  8. 信号与系统2020参考答案(网络试卷)
  9. C++ QT安装教程2021
  10. arcgis中将地理坐标转换为投影坐标 / 经纬度坐标转换