光集成一个友盟推送就要好几十行代码, 如果多集成几个AppDelegate就会变得臃肿不堪, 也降低了可读性 为了解决这个问题, 目前想到以Category的方式给AppDelegate添加新的类别去完成这些三方集成...先以友盟推送为例 具体方法为先创建一个类别AppDelegate+UMengPush.h 给类别添加一个userInfo属性用来临时存放接收到的推送消息, @property (nonatomic,...if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 10.0) { // 如果检查到时iOS...:userInfo]; }else{ //应用处于前台时的本地推送接受 } //当应用处于前台时提示设置,需要哪个可以设置哪一个...中只要简单一句话就完成了 #import "AppDelegate.h" #import "AppDelegate+UMengPush.h" @interface AppDelegate () @end
下载SDK, 添加到项目中 在AppDelegatez #import "UMessage.h" 添加一个属性 @property (nonatomic, strong) NSDictionary *userInfo...; 添加协议: @interface AppDelegate () 设置友盟AppKey static NSString *UMessageAppKey...registerForRemoteNotifications]; //开启log [UMessage setLogEnabled:YES]; //检查是否为iOS...UIDevice currentDevice] systemVersion] floatValue] < 10.0) { } else { //如果是iOS...:userInfo]; }else{ //应用处于前台时的本地推送接受 } //当应用处于前台时提示设置,需要哪个可以设置哪一个
作者:Pikacode 原文链接:http://www.jianshu.com/p/67864e1c2085 本文获作者授权转载 或许很多童鞋还不知道,在 iOS 中收到推送通知时,如果 App 处于前台运行的情况下...在 AppDelegate.m 中添加代码 //AppDelegate.m #import "EBForeNotification.h" //ios7 before - (void)application...:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { ......later - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)...监听并处理点击事件 添加 Observer 监听 EBBannerViewDidClick,获取推送内容,通过推送时自定义的字段处理自己逻辑,如:跳转到对应页面等。
或许很多童鞋还不知道,在 iOS 中收到推送通知时,如果 App 处于前台运行的情况下,推送的顶部弹窗是不会弹出来的。...支持 iOS 7~10 beta,支持模拟器和真机运行。...在 AppDelegate.m 中添加代码 //AppDelegate.m #import "EBForeNotification.h" //ios7 before - (void)application...1312 其他系统声音 id 可以在这里查询到 iOS Predefined sounds 备用地址 AudioServices sounds 监听并处理点击事件 添加 Observer 监听 EBBannerViewDidClick...,获取推送内容,通过推送时自定义的字段处理自己逻辑,如:跳转到对应页面等。
钥匙串 ---- 代码实现:(前提:确保bundleID和网站的配置一样) 要注意,由于iOS8 以后推送需要用户授权,所以AppDelegate中要分别适配不同版本 注册推送,注册后就会向苹果服务器发送...处理警告 (3)还有警告,需要添加一个值在info.plist中,可用到界面把后台模式更改一下 ? 处理警告 ?...勾选remote notifications ---- AppDelegate中的全部代码 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions...Token 发送给自己的服务器做保存 NSLog(@"deviceToken: %@", deviceToken); } #pragma mark 接收到远程推送的消息时调用此方法(后台和前台时可用...fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { // 测试添加一个label表示接收到通知
,感觉这个库有一定的局限性,用runtime实现跳转这不假,但是在请求字段里加上了ViewController的类名,这其实就是局限的地方了,毕竟除了服务咱们iOS端,你也得考虑考虑安卓端的攻城狮不是,...之前的几篇文章,我也在研究iOS开发的组件化的架构模式,也有的应用在走组件化的道路上使用了URL来跳转界面完成解耦,在实现推送时,我们也能沿用这个思路,用URL实现界面的跳转。...关于使用哪个Router框架,其实真的是萝卜青菜各有所爱,很成熟的 JLRoutes、 routable-ios、 HHRouter、 MGJRouter,在经过比较已经实际使用之后,我选择了MGJRouter...来说一说这个基本的使用方式,首先你得跟后台约定推送的参数,比如我在跟后台的约定里,参数名就是url,那么我在拿到推送的userInfo时,就需要把url解析出来。...[LixObjcRouter pushController:articleViewController]; }]; } 这段代码可以当成一个完整的业务逻辑的范例,在写好业务逻辑之后,我们需要去AppDelegate
首先用iTunes的同步功能,将手机的各种信息同步至电脑: 然后,崩溃日志可以在这里找到: ~/Library/Logs/CrashReporter/MobileDevice/<DEVICE_NAME
apns_16.png 二、集成极光推送SDK sdk地址 我使用的是JPush-iOS-SDK-2.1.0。...apns_17.png 下面是我写的代码: AppDelegate.m文件 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions...launchOptions]; return YES; } #pragma mark 修改通知处理函数 -(void)application:(UIApplication *)application didReceiveRemoteNotification...{ // Required if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) { //可以添加自定义...收到通知消息后,在AppDelegate.m跳转到指定界面的方法: UIViewController *vc = [[UIViewController alloc] init]; [self.window.rootViewController
那么在ios10之前,ios的消息推送是怎么分类的呢?...ios 10之前 在ios之前,iOS推送分为Local Notifications(本地推送) 和 Remote Notifications(远程推送)。...这时候我们只需要调用下AppDelegate方法即可。...对于app被杀死的情况,要先启动app,启动完毕会调用AppDelegate方法。 需要特别注意的是:在iOS8.0以后本地通知有了一些变化,如果要使用本地通知,需要得到用户的许可。...部分代码实现: #define IS_iOS8 ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) @interface AppDelegate
打开AppDelegate.swift,添加以下代码到AppDelegate末尾。...添加以下代码到 AppDelegate: func application(application: UIApplication,didRegisterUserNotificationSettings...为了处理另外两种情况,添加以下代码到 AppDelegate: func application(application: UIApplication, didReceiveRemoteNotification...处理通知交互动作事件 回到 AppDelegate.swift,添加另一个方法: func application(application: UIApplication, handleActionWithIdentifier...在AppDelegate内,用下面更强大的版本替换 application(_:didReceiveRemoteNotification:) 方法: func application(application
如果注册成功,则可以在 AppDelegate.m 的如下方法中获取到 deviceToken,它是对 该手机+该App 组合的一个唯一标识,当使用远程推送时,只需将推送消息发给指定的 deviceToken...App: 处于前台:可通过didReceiveRemoteNotification(iOS 7 before)didReceiveRemoteNotification:fetchCompletionHandler...处于后台:可通过didReceiveRemoteNotification:fetchCompletionHandler:获取通知内容 // 获取情况中与普通推送的唯一不同点,此时 iOS 系统允许开发者在...App : 处于前台:可通过didReceiveRemoteNotification(iOS 7 before)didReceiveRemoteNotification:fetchCompletionHandler...处于后台:可通过 didReceiveRemoteNotification:fetchCompletionHandler: 获取通知内容 //获取情况中与普通推送的唯一不同点,此时 iOS 系统允许开发者在
主要从iOS远程消息推送过程以及客户端如何处理推送消息的开发实现逻辑两方面来展开,最后梳理一下iOS消息推送测试时需要关注的点。 1.iOS消息推送过程 ?...:(NSDictionary *)userInfo函数, 此时AppDelegate中函数执行的顺序为: applicationWillEnterForeground application:didReceiveRemoteNotification...content-available:此字段为 iOS 7 silent remote notification 使用。不使用此功能时无需包含此字段。...如果需要添加自定义的字段,就让服务器端跟aps同一层级添加一个数组(以Json为例),如下图所示: ? 这样收到的 Payload 里面会多出相应添加的字段。...4.消息推送功能测试 了解了消息的开发实现流程后,小编总结了消息推送测试时需要关注的点,希望对你有所启发: (1)消息推送对象 消息推送一般可以自定义推送对象,有全部推送,精确推送,及安卓和IOS渠道推送
一切从0开始,包括XCode6, IOS8, 以及苹果开发者中心最新如何注册应用,申请证书以及下载配置概要文件,相信很多刚开始接触ios的人会很想了解一下。...创建发布版的ProvisioningProfile与开发版的流程相同,点击Development然后点击右上角的加号 会进入选择何种配置概要文件的界面: 我们现在时测试,所以选择“IOS App Development...关于如何将你的设备号添加 进去也是非常简单的,选择左侧的”Devices”,然后点击右上角的加号,在随后出来的页面上添加你设备的UUID(在XCode中可以查 看到)以及name( 可以随便取,自己看的懂就行...All rights reserved. // #import "AppDelegate.h" @implementation AppDelegate @synthesize mainView =...- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
然后以管理员身份运行VC6.0,再添加就可以了 参考 http://cc.bingj.com/cache.aspx?
UNNotificationRequest requestWithIdentifier:@"testId" content:content trigger:calendarTrigger]; //将推送请求添加到管理中心才会生效...Payload是一个json对象,用于配置iOS在收到远程消息推送时的展现形式,aps参数包含了苹果预设的alert、sound、badge等参数,其中alert参数可以是字符串,或者包含title、body...> @end @implementation AppDelegate //在App启动后就将AppDelegate对象配置为NotificationCenter的delegate - (BOOL)application...//远程消息推送回调方法,ios(3.0, 10.0) - (void)application:(UIApplication *)application didReceiveRemoteNotification...- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
一个iOS程序启动后创建的第一个对象就是UIApplication对象。...1.不能外界调用alloc,一调用就崩掉,抛出异常,(第一次调用alloc就不崩溃,其他都崩溃) 2.提供一个方法给外界获取单例(shareApplication) 3.程序启动的时候内部创建一次单例...return NO; } b.通过UIApplication管理(一个应用程序的状态栏都由它统一管理)如果想利用UIApplication来管理状态栏,首先得修改Info.plist的设置,添加选中行...delegate可以处理的时间包括 1.应用程序的生命周期事件(如程序启动和关闭) 2.系统事件(如来电) 3.内存警告(用处较多) 每当我们创建项目时,程序中的AppDelegate文件就是...@interface AppDelegate : UIResponder 下面我们来看一下AppDelegate的方法 // AppDelegate:监听应用程序的生命周期
点击推送触发的几个方法: ios7.0之前 - (void)application:(UIApplication *)application didReceiveRemoteNotification...通知内容类 UNMutableNotificationContent * content = [UNMutableNotificationContent new]; //设置通知请求发送时...content.subtitle = @"这里是副标题"; //设置通知的标题 content.title = payData[@"title"]; //设置从通知激活app时的...UNNotificationRequest requestWithIdentifier:@"NotificationDefault" content:content trigger:trigger]; //添加通知请求...iOS 8 - 10 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary
JPAuthorizationOptionSound; if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) { // 可以添加...iOS10的静默式推送 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary...completionHandler(UNNotificationPresentationOptionAlert); } 这个方法被触发的条件: 程序在前台受收到推送 ,会有顶部横条提示,点击横幅时...SDK集成指南 registrationID 只需要在登录时跟账号绑定,在退出的时候跟账号解绑(账号绑定的registrationID为空即可)。...使用极光推送平台时,添加附加字段 APP收到的推送信息 { "_j_business" = 1; "_j_msgid" = 36028797200845676
先说明一下我的解决思路:在AppDelegate里面写 1,当用户退出app时创建一个通知,一定时间后调用,比如10秒。...dictionaryWithObjectsAndKeys:@"notification",@"nfkey",nil]; [notification setUserInfo:dict]; // 将通知添加到系统中...application.applicationIconBadgeNumber=0; } -(void)application:(UIApplication *)application didReceiveRemoteNotification...为了避免重复,在通知a时间还没有到情况下登录app我们就取消通知a,退出时创建通知b。
,因为我发现在iOS10环境下我的推送还是可以用。...当然适配iOS10是必然的,这里就说一下。...(声明:当前项目中用的是友盟推送) 对于客户端来说,推送有三种情况:1.程序在前台运行 2.程序在后台运行 3.程序不在运行 先看下本人在iOS10之前的推送代码: 当程序在运行(前台、后台)时接收到通知...由于我用了跳转选择所以即使不适配iOS10也没关系,因为如果在iOS10环境下运行就不会再走didReceiveRemoteNotification这个方法了。...适配iOS10是必然的,下面是适配iOS10的代码: ? ? 疑问:iOS10之后不走didReceiveRemoteNotification方法,为什么alertView控件还能显示出来?
领取专属 10元无门槛券
手把手带您无忧上云