iOS开发(第三方使用)——极光推送SDK接入
来源:互联网 发布:手机助手软件 编辑:程序博客网 时间:2024/05/22 08:04
- pod ‘JPush’
添加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)- 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:jgAppKey channel:@"App Store" apsForProduction:NO advertisingIdentifier:nil]; }else{//api打包 [JPUSHService setupWithOption:launchOptions appKey:jgAppKey channel:@"App Store" apsForProduction:YES advertisingIdentifier: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 *)applicationdidRegisterForRemoteNotificationsWithDeviceToken:(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 { // Required NSDictionary * 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 { // Required NSDictionary * userInfo = response.notification.request.content.userInfo; if([response.notification.request.trigger isKindOfClass:[UNPushNotificationTrigger class]]) { [JPUSHService handleRemoteNotification:userInfo]; } completionHandler(); // 系统要求执行这个方法}
0 0
- iOS开发(第三方使用)——极光推送SDK接入
- iOS开发(第三方使用)——百度地图鹰眼轨迹SDK接入
- iOS开发(第三方使用)——讯飞语音SDK接入
- iOS开发-极光推送SDK使用笔记
- 使用第三方推送平台 极光推送
- Android开发之第三方推送JPush极光推送知识点详解 学会集成第三方SDK推送
- 第三方--极光推送
- 第三方推送-极光推送
- iOS开发——iOS10升级极光推送SDK、友盟分享SDK
- 【android】第三方集成之——极光推送
- iOS极光推送SDK的使用流程
- iOS开发——极光推送
- Android开发接入第三方SDK流程
- Android第三方推送——极光推送,百度云推送,个推
- 第三方sdk接入
- 极光推送—java快速接入
- iOS第三方集成之jpush极光推送
- android-----第三方推送(极光推送消息)
- 数据库表某字段设置default为Null好,还是“”好,或者是Empty String好呢
- PHP 学习之路 基础
- 用源码安装 appium
- android studio将导入的三方module整理到一个文件夹下
- 全志R58的官方开发板加载bmi160驱动的步骤2C
- iOS开发(第三方使用)——极光推送SDK接入
- 我是如何面试产品经理的
- 条理清晰的搭建SSH环境之整合Hibernate和Spring
- C/C++开发者必备:十款免费集成开发环境IDE
- 数据结构实验之数组三:快速转置
- 仿微信界面,并简单总结TextView控件
- Uva 10006 - Carmichael Numbers【素数+快速幂取模】
- 为阿里云ECS(Windows 2012)创建IPv6隧道地址
- java设计模式-策略模式