极光推送ios 编译报错,报错,为什么

他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)关于极光推送的流程以及遇到问题
关于极光推送的流程以及遇到问题
推送的作用:
可以让不在前台运行的app,告知用户app内部发生了什么事情
推送的形式分为三种:屏幕顶部显示一块横幅、中间弹出一个UIAlertView、app图标数字&
推送流程:
首先要像苹果服务器申请deviceToken然后把deviceToken发给自己服务器,服务器把deviceToken发给APNS服务器APNS再推送到你手机系统,系统再检查你是否安装对应app,如果安装就显示,没安装就什么都不做。注意:这里是首先推送到手机系统,这也说明了为什么有时候,推送消息已经到了点进app,app的界面还没有改变的原因。推送到了这个时候你的程序可能还是没有打开的状态,所以视图控制器还没有加载数据。
为什么要使用极光推送
使用极光推送主要是为了后台方便管理deviceToken
首先到官网创建一个应用。照着极光官方文档做就可以,我在这里只说下我在其中遇到的问题。
在极光2.1.0后的版本就不需要在plist文件中配置老版本需要在新建一个plist文件配置。文件名字是固定的PushConfig,键值对的key也是固定的
另一个就是证书配置最终会产生5个文件
CertificateSigningRequest.certSigningRequest:描述电脑信息
ios_development.cer:电脑调试证书(让电脑具备真机调试功能)
apple_mj_iphone5_heima_qq.mobileprovision:描述文件(在哪台电脑上利用哪台设备调试哪个应用)、
aps_development.cer:推送调试证书(在哪台电脑调试哪个应用的推送服务)
aps_production.cer:推送发布证书
证书配置完成后,在填写极光iOSAPP信息的时候把推送证书的两个p12文件(一个发布,一个调试)传上去
在导出p12文件的时候可能会遇到导出p12文件选项是灰色的不能选&
解决方法:先点击登录,在点击我的证书&
在修改bundleID的时候需要特别注意,如果是在修改了bundleid后有可能会遇到,每次运行需要clear一下
The operation couldn’t be completed. (LaunchServicesError error 0.)
这个问题的原因就是修改了bundleid,需要reset下模拟器就在clear下工程就可以。
注册推送代码
(BOOL)application:(UIApplication
*)application didFinishLaunchingWithOptions:(NSDictionary
*)launchOptions {
& & self.window
= [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]
autorelease];
& self.window.backgroundColor
[UIColor whiteColor];
& [self.window
makeKeyAndVisible];
& // Required
([[UIDevice
currentDevice].systemVersion
floatValue]
//可以添加自定义categories
& [JPUSHService
registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge
& & UIUserNotificationTypeSound
UIUserNotificationTypeAlert)
& & categories:nil];
& & } else
//categories 必须为nil
& [JPUSHService
registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge
& & UIRemoteNotificationTypeSound
UIRemoteNotificationTypeAlert)
& & categories:nil];
& // Required
& //如需兼容旧版本的方式,请依旧使用[JPUSHService
setupWithOption:launchOptions]方式初始化和同时使用pushConfig.plist文件声明appKey等配置内容。
& & [JPUSHService
setupWithOption:launchOptions appKey:appKey channel:channel
apsForProduction:isProduction];
& return YES;
(void)application:(UIApplication
*)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData
*)deviceToken {
& // Required
& & [JPUSHService
registerDeviceToken:deviceToken];
(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);
(void)application:(UIApplication
*)application
didFailToRegisterForRemoteNotificationsWithError:(NSError
& //Optional
& NSLog(@"did
Fail To Register For Remote Notifications With Error:
有问题@艾江山1993 &一起装逼一起飞
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。查看: 13544|回复: 9
JPush推送消息出错了,求解决
主题帖子积分
金牌会员, 积分 1122, 距离下一级还需 1878 积分
金牌会员, 积分 1122, 距离下一级还需 1878 积分
本帖最后由 gzcyp2000 于
17:51 编辑
打andriod包安装后,可以接收从jpush的控制台发出的通知消息(自定义消息收不到)。但按外卖案例做的APP推送消息不成功(直接调用外卖所用的servlet),不知道是什么原因造成的,还有别的需要设置的吗?
js源码如下:
define(function(require){
& && &&&var $ = require(&jquery&);
& && &&&var justep = require(&$UI/system/lib/justep&);
& && &&&var Baas = require(&$UI/demo/baas/baas&);
& && &&&var CommonUtils = require(&$UI/system/components/justep/common/utils&);
& && &&&var jpushInstance = require(&./jpush&);
& && &&&require(&$UI/system/lib/cordova/cordova&);
& && &&&require(&cordova!org.apache.cordova.device&);
& && &&&require(&cordova!com.justep.cordova.plugin.weixin.v3&);
& && &&&require(&cordova!com.justep.cordova.plugin.alipay&);
& && &&&require(&cordova!org.apache.cordova.geolocation&);
& && &&&require(&cordova!com.justep.cordova.plugin.baidulocation&);
& && &&&require(&cordova!cn.jpush.phonegap.JPushPlugin&);& && &&&
& && &&&var Model = function(){
& && && && && & this.callParent();
& && &&&};
& && &&&Model.prototype.button1Click = function(event){
& && && && && & alert(&开始推送&);
& && && && && & this.sendOrderPushMessage();
& && &&&};
& && &&&Model.prototype.sendOrderPushMessage = function() {& && && && && && && && &//发送极光推送消息
& && && && && & jpushInstance.getRegistrationID().done(function(id) {
& && && && && && && && &alert(id);
& && && && && && && && &$.ajax({
& && && && && && && && && && &&&method : &post&,
& && && && && && && && && && &&&url : &/baas/jpush/push&,
& && && && && && && && && && &&&data : {
& && && && && && && && && && && && && & 'registrationId' : id,
& && && && && && && && && && && && && & 'appKey'& && && &: &f4fa77eff85aea0cf631817a&,
& && && && && && && && && && && && && & 'masterSecret'& &: &25b49197dbf86dd63da1afa8&
& && && && && && && && && && &&&}
& && && && && && && && &});
& && && && && & });
& && &&&};
& && &&&return M
================================================
jpush.config.xml设置如下:
& && &&&&!-- 配置成自己申请的JPush应用的参数 --&
& && &&&&appKey&f4fa77eff85aea0cf631817a&/appKey&
& && &&&&masterSecret&25b49197dbf86dd63da1afa8&/masterSecret&
& && &&&&apnsProduction&false&/apnsProduction&
================================================
控制台错误提示如下:
[17:39:59|INFO |(com.justep.jpush.JPushServlet)]=[registrationId:e, key: f4fa77eff85aea0cf631817a, masterSecret: 25b49197dbf86dd63da1afa8]
===================》已到达sendPushMessage, registrationId: e, key: f4fa77eff85aea0cf631817a
[http-8080-1] INFO cn.jpush.api.common.connection.NativeHttpClient - Created instance with _maxRetryTimes = 3
[http-8080-1] INFO cn.jpush.api.common.connection.NativeHttpClient - Created instance with _maxRetryTimes = 3
[http-8080-1] INFO cn.jpush.api.common.connection.NativeHttpClient - Created instance with _maxRetryTimes = 3
[http-8080-1] INFO cn.jpush.api.common.connection.NativeHttpClient - Created instance with _maxRetryTimes = 3
[17:39:59|INFO |(com.justep.jpush.JPushServlet)]=[apnsProduction:true]
十月 26, :00 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jpush threw exception
java.lang.RuntimeException: {}
& && &&&at com.justep.jpush.JPushServlet.service(JPushServlet.java:73)
& && &&&at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
& && &&&at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
& && &&&at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
& && &&&at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
& && &&&at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
& && &&&at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
& && &&&at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
& && &&&at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
& && &&&at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
& && &&&at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
& && &&&at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
& && &&&at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
& && &&&at java.lang.Thread.run(Thread.java:745)
Caused by: {}
& && &&&at cn.jpush.api.common.connection.NativeHttpClient._doRequest(NativeHttpClient.java:232)
& && &&&at cn.jpush.api.common.connection.NativeHttpClient.doRequest(NativeHttpClient.java:94)
& && &&&at cn.jpush.api.common.connection.NativeHttpClient.sendPost(NativeHttpClient.java:81)
& && &&&at cn.jpush.api.schedule.ScheduleClient.createSchedule(ScheduleClient.java:58)
& && &&&at cn.jpush.api.JPushClient.createSingleSchedule(JPushClient.java:433)
& && &&&at com.justep.jpush.JPushServlet.sendPushMessage(JPushServlet.java:96)
& && &&&at com.justep.jpush.JPushServlet.service(JPushServlet.java:67)
& && &&&... 13 more
[http-8080-1] WARN cn.jpush.api.common.connection.NativeHttpClient - Got error response - responseCode:400, responseContent:{&error&:{&message&:&trigger-&single-&time[ 17:40:59] is invalid, it has been expired now.&,&code&:8100}}
[http-8080-1] ERROR cn.jpush.api.common.connection.NativeHttpClient - Your request params is invalid. Please check them according to error message.
& && &&&at cn.jpush.api.common.connection.NativeHttpClient._doRequest(NativeHttpClient.java:232)
& && &&&at cn.jpush.api.common.connection.NativeHttpClient.doRequest(NativeHttpClient.java:94)
& && &&&at cn.jpush.api.common.connection.NativeHttpClient.sendPost(NativeHttpClient.java:81)
& && &&&at cn.jpush.api.schedule.ScheduleClient.createSchedule(ScheduleClient.java:58)
& && &&&at cn.jpush.api.JPushClient.createSingleSchedule(JPushClient.java:433)
& && &&&at com.justep.jpush.JPushServlet.sendPushMessage(JPushServlet.java:96)
& && &&&at com.justep.jpush.JPushServlet.service(JPushServlet.java:67)
& && &&&at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
& && &&&at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
& && &&&at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
& && &&&at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
& && &&&at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
& && &&&at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
& && &&&at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
& && &&&at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
& && &&&at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
& && &&&at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
& && &&&at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
& && &&&at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
& && &&&at java.lang.Thread.run(Thread.java:745)
主题帖子积分
消息的有效期过了,应该是java中设置的有效期不对
(17.63 KB, 下载次数: 20)
10:06 上传
远程的联系方法QQ,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题&&&&
如按照该方法解决,请及时跟帖,便于版主结贴
主题帖子积分
金牌会员, 积分 1122, 距离下一级还需 1878 积分
金牌会员, 积分 1122, 距离下一级还需 1878 积分
消息的有效期过了,应该是java中设置的有效期不对
java中有效期的设置我没改过,demo中原本就这样的。如果要解决“消息的有效期过了”的问题,应该如何改呢?
主题帖子积分
demo中取的是当前时间,把时间改大点看看
远程的联系方法QQ,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题&&&&
如按照该方法解决,请及时跟帖,便于版主结贴
主题帖子积分
金牌会员, 积分 1122, 距离下一级还需 1878 积分
金牌会员, 积分 1122, 距离下一级还需 1878 积分
demo中取的是当前时间,把时间改大点看看
& & nowTime.add(Calender.MINUTE, 1)
& & nowTime.add(Calender.HOUR, 1)
运行是不出错,在极光登录用户管理页面,也显示API通知发送成功了,如图:
但本机就是收不到,不知为什么?
(23.01 KB, 下载次数: 7)
11:50 上传
主题帖子积分
确认客户端极光推送是否登录了,极光推送是否设置的正确,现在是送达为0,是极光推送的问题,或者可以到网上查一下是否有相关的问题的
远程的联系方法QQ,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题&&&&
如按照该方法解决,请及时跟帖,便于版主结贴
主题帖子积分
金牌会员, 积分 1122, 距离下一级还需 1878 积分
金牌会员, 积分 1122, 距离下一级还需 1878 积分
主题帖子积分
中级会员, 积分 452, 距离下一级还需 48 积分
中级会员, 积分 452, 距离下一级还需 48 积分
找到原因了吗?
主题帖子积分
中级会员, 积分 452, 距离下一级还需 48 积分
中级会员, 积分 452, 距离下一级还需 48 积分
请问怎么弄的
主题帖子积分
金牌会员, 积分 1122, 距离下一级还需 1878 积分
金牌会员, 积分 1122, 距离下一级还需 1878 积分
请问怎么弄的
“收不到”可能是因为从推送到终端接收到要一段时间(几十秒到数分钟),用户就以为接收不到,等上个分把钟应该就能收到了。
Powered by&nbsp>&nbsp&nbsp>&nbsp正文
关于JPush(极光推送)那些事
iOS不倒,博客不停
JPush的文档说明挺不错,非常详细!为什么还要写这篇简书?主要是为了记录自己开发过程,也给一些朋友提供一点点帮助.首先是JPush的文档地址:JPush文档
JPush,推送原理
可以看出,JPush iOS Push 包括 2 个部分,APNs 推送(代理)与 JPush 应用内消息。红色部分是 APNs 推送,JPush 代理开发者的应用(需要基于开发者提供的应用证书),向苹果 APNs 服务器推送。由 APNs Server 推送到 iOS 设备上。蓝色部分是 JPush 应用内推送部分,即 App 启动时,内嵌的 JPush SDK 会开启长连接到 JPush Server,从而 JPush Server 可以推送消息到 App 里
APNs 通知:是指通过向 Apple APNs 服务器发送通知,到达 iOS 设备,由 iOS 系统提供展现的推送。用户可以通过 IOS 系统的 “设置” && “通知” 进行设置,开启或者关闭某一个 App 的推送能力。JPush iOS SDK 不负责 APNs 通知的展现,只是向 JPush 服务器端上传 Device Token 信息,JPush 服务器端代理开发者向 Apple APNs 推送通知。获取 APNs 推送内容
应用内消息
应用内消息:JPush iOS SDK 提供的应用内消息功能,在 App 在前台时能够收到推送下来的消息。App 可使用此功能来做消息下发动作。此消息不经过 APNs 服务器,完全由 JPush 提供功能支持。
APNs通知与应用内消息对比
如果只需要发送通知,则可以忽略应用内消息的处理。对于两种消息的代码处理可以参考API 部分的描述。JPush API v3 支持同时一次调用同时推送 APNs 通知与 JPush 应用内消息。这在某些应用场景里是有意义的。
APNs 通知与应用内消息对比.png
OK,原理了解之后,下面开始集成.
* 1:下载JPush的SDK:SDK下载地址
* 2:在JPush平台注册应用,这里的目的:
A:交付授权,因为在这里开发者需要上传应用的推送开发证书,推送生产证书,这样JPush平台就能去苹果服务器拿去一个推送关键字段:DeviceToken,相当于授权码.
B:平台注册,还会生成一个:AppKey和一个MasterSecret.这两个东西相当于一个登陆账号,一个登陆密码.这样生成出来,JPush就能根据MasterSecret.去校验 AppKey,然后去找绑定在这个 AppKey上面的生产,开发证书授权的DeviceToken去苹果服务器推送消息.
JPush平台创建应用.jpg
生成成产,开发证书
JPush创建成功.jpg
* 3 导入SDK
将SDK包解压,在Xcode中选择“Add files to "Your project name"...”,将解压后的lib子文件夹(包含JPUSHService.h、jpush-ios-x.x.x.a,jcore-ios-x.x.x.a)添加到你的工程目录中。添加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)
*4:编译与开启推送功能
编译与开启推送功能
&key&NSAppTransportSecurity&/key&
&key&NSAllowsArbitraryLoads&/key&
*6:添加头文件和添加代理
请将以下代码添加到 AppDelegate.m 引用头文件的位置。
// 引入JPush功能所需头文件
#import "JPUSHService.h"
// iOS10注册APNs所需头文件
#ifdef NSFoundationVersionNumber_iOS_9_x_Max
#import &UserNotifications/UserNotifications.h&
// 如果需要使用idfa功能所需要引入的头文件(可选)
#import &AdSupport/AdSupport.h&
为AppDelegate添加Delegate
& JPUSHRegisterDelegate &
* 7:核心代码: 添加初始化代码
添加初始化APNs代码
请将以下代码添加到-(BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions
//Required
//notice: 3.0.0及以后版本注册可以这样写,也可以继续用之前的注册方式
JPUSHRegisterEntity * entity = [[JPUSHRegisterEntity alloc] init];
entity.types = JPAuthorizationOptionAlert|JPAuthorizationOptionBadge|JPAuthorizationOptionS
if ([[UIDevice currentDevice].systemVersion floatValue] &= 8.0) {
// 可以添加自定义categories
// NSSet&UNNotificationCategory *& *categories for iOS10 or later
// NSSet&UIUserNotificationCategory *& *categories for iOS8 and iOS9
[JPUSHService registerForRemoteNotificationConfig:entity delegate:self];
添加初始化JPush代码
// Optional
// 获取IDFA
// 如需使用IDFA功能请添加此代码并在初始化方法的advertisingIdentifier参数中填写对应值
NSString *advertisingId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
// Required
// init Push
// notice: 2.1.5版本的SDK新增的注册方法,改成可上报IDFA,如果没有使用IDFA直接传nil
// 如需继续使用pushConfig.plist文件声明appKey等配置内容,请依旧使用[JPUSHService setupWithOption:launchOptions]方式初始化。
[JPUSHService setupWithOption:launchOptions appKey:appKey
channel:channel
apsForProduction:isProduction
advertisingIdentifier:nil];
注册APNs成功并上报DeviceToken
- (void)application:(UIApplication *)applicationdidRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
/// Required - 注册 DeviceToken
[JPUSHService registerDeviceToken:deviceToken];
实现注册APNs失败接口(可选)
- (void)application:(UIApplication *)application
didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
//Optional
NSLog(@"did Fail To Register For Remote Notifications With Error: %@",error);
添加处理APNs通知回调方法
下面这几个方法也是核心代码,这是对通知的回调方法,通知达到之后会调用这下面的方法,所以说也是必须要实现的.JPush考虑很周全,涉及到了各个版本,但是方法太多,要是能一个方法处理完就更好了.
#pragma mark- JPUSHRegisterDelegate
// iOS 10 Support
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(NSInteger))completionHandler {
// Required
NSDictionary * userInfo = notification.request.content.userI
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.userI
if([response.notification.request.trigger isKindOfClass:[UNPushNotificationTrigger class]]) {
[JPUSHService handleRemoteNotification:userInfo];
completionHandler();
// 系统要求执行这个方法
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
// Required, iOS 7 Support
[JPUSHService handleRemoteNotification:userInfo];
completionHandler(UIBackgroundFetchResultNewData);
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
// Required,For systems with less than or equal to iOS6
[JPUSHService handleRemoteNotification:userInfo];
调用,成功打印:
17:12:12.b28[]
| JPUSH | I -
[JPUSHLogin]
----- login result -----
registrationID:a
程序到这,也就基本集成完毕:
8:还有推送的一些新特性极光新特性地址
action.jpg
这样就能给你推送添加操作:具体代码:
UNNotificationAction *closeAction = [UNNotificationAction actionWithIdentifier:@"close" title:@"关闭" options:UNNotificationActionOptionDestructive];
UNNotificationAction *enterAction = [UNNotificationAction actionWithIdentifier:@"enter" title:@"进入" options:UNNotificationActionOptionForeground];
UNNotificationAction *unLockAction = [UNNotificationAction actionWithIdentifier:@"unLock" title:@"解锁" options:UNNotificationActionOptionAuthenticationRequired];
UNTextInputNotificationAction *inputAction = [UNTextInputNotificationAction actionWithIdentifier:@"input" title:@"输入" options:UNNotificationActionOptionAuthenticationRequired];
UNNotificationCategory *category = [UNNotificationCategory categoryWithIdentifier:@"comment-reply" actions:@[inputAction,enterAction,unLockAction,closeAction] intentIdentifiers:@[] options:UNNotificationCategoryOptionNone];
[[UNUserNotificationCenter currentNotificationCenter] setNotificationCategories:[NSSet setWithObject:category]];
iOS 10 想要对这些操作action处理:
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler {
// Required
NSString *identifier = response.actionI
if ([identifier isEqualToString:@"close"]) {
//对输入的文字作处理
NSLog(@"close");
}else if ([identifier isEqualToString:@"input"]){
NSLog(@"input");
}else if ([identifier isEqualToString:@"enter"]){
NSLog(@"enter");
}else if ([identifier isEqualToString:@"unLock"]){
NSLog(@"unLock");
NSLog(@"didReceiveNotificationResponse:response == %@",response);
NSLog(@"didReceiveNotificationResponse:center == %@",center);
NSDictionary * userInfo = response.notification.request.content.userI
if([response.notification.request.trigger isKindOfClass:
[UNPushNotificationTrigger class]]) {
[JPUSHService handleRemoteNotification:userInfo];
completionHandler();
// 系统要求执行这个方法
iOS 9 想要对这些操作action处理:
- (void)application:(UIApplication *)applicationhandleActionWithIdentifier:(NSString *)identifier
forRemoteNotification:(NSDictionary *)userInfo
completionHandler:(void (^)())completionHandler {
if ([identifier isEqualToString:@"close"]) {
//对输入的文字作处理
NSLog(@"close");
NSLog(@"forRemoteNotification == %@",userInfo);
}else if ([identifier isEqualToString:@"input"]){
NSLog(@"input");
NSLog(@"forRemoteNotification == %@",userInfo);
}else if ([identifier isEqualToString:@"enter"]){
NSLog(@"enter");
NSLog(@"forRemoteNotification == %@",userInfo);
}else if ([identifier isEqualToString:@"unLock"]){
NSLog(@"unLock");
NSLog(@"forRemoteNotification == %@",userInfo);
completionHandler();
iOS 8 想要对这些操作action处理:
- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forLocalNotification:(UNNotificationRequest *)notificatio
completionHandler:(void (^)())completionHandler {
if ([identifier isEqualToString:@"close"]) {
//对输入的文字作处理
NSLog(@"close");
NSLog(@"forRemoteNotification == %@",userInfo);
}else if ([identifier isEqualToString:@"input"]){
NSLog(@"input");
NSLog(@"forRemoteNotification == %@",userInfo);
}else if ([identifier isEqualToString:@"enter"]){
NSLog(@"enter");
NSLog(@"forRemoteNotification == %@",userInfo);
}else if ([identifier isEqualToString:@"unLock"]){
NSLog(@"unLock");
NSLog(@"forRemoteNotification == %@",userInfo);
completionHandler();
上面三个方法还可以对附件:attachment操作处理;
9:这里还介绍一下关于设置tags和alias
* 下面的接口是可选的
* 设置标签和(或)别名(若参数为nil,则忽略;若是空对象,则清空;详情请
参考文档:https://docs.jiguang.cn/jpush/client/iOS/ios_api/)
* setTags:alias:fetchCompletionHandle:是新的设置标签别名的方法,不再需要显示声明回调函数,只需要在block里面处理设置结果即可.
* WARN: 使用block时需要注意循环引用问题
(void)setTags:(NSSet *)tags alias:(NSString *)alias callbackSelector(SEL)cbSelector object:(id)theT
10:设置Badge
(BOOL)setBadge:(int)value
清空JPush服务器中存储的badge值,即 [setBadge:0]
(void)resetBadge
11:API 用于移除待推送或已在通知中心显示的推送(支持iOS10,并兼容iOS10以下版本)
(void)removeNotification:(JPushNotificationIdentifier *)
iOS10以上identifier设置为nil,则移除所有在通知中心显示推送和待推送请求,也可以通过设置identifier.delivered和identifier.identifiers来移除相应在通知中心显示推送或待推送请求,identifier.identifiers如果设置为nil或空数组则移除相应标志下所有在通知中心显示推送或待推送请求;iOS10以下identifier设置为nil,则移除所有推送,identifier.delivered属性无效,另外可以通过identifier.notificationObj传入特定推送对象来移除此推送。
12:极光还有下面的功能(因为项目没有集成,没有仔细研究):极光响应SDK地址
AddNotification:
FindNotification:
SetLocalNotification:
clearAllLocalNotification:用于清除所有注册的通知
花了一周时间学习极光推送,虽然时间有点长,但是对于我自己来说很不错了,沉下心来慢慢学东西,不管外面iOSduo"me"duo
TOP ARTICLES
推送技术哪家强,还是要去找极光,没有一点打广告的意思哦!接触苹果远程推送功能不是一天二天了,记得上次
宿舍情,请珍惜!爱因斯坦曾说过:“世间最美好的东西,莫过于有几个头脑和心地都很正直的严正的朋友”。而
一、判断脸型
二、判断脸胖的原因
...和詹宁斯这样的名宿吗?可惜我雷啊,当年输了,怀念登关于啪啪啪的那些事
今天我们就说一下基本上所有女生都会出现的一个问题,气血不足。
气血不足会直接导致两个我们最关心的两
...白,中国现在还难以举办一届世界杯,暂且不论其他因素关于啪啪啪的那些事
【前言】咱们继续之前有关脱发的话题,接着聊聊这个受众范围最广的脱发,到底还有些什么奥秘呢?
漠河极光在几月份出现,1、和尚和尼姑睡觉的图片,和尚与尼姑的风流事_深港在线太震惊!尼姑与和尚偷情怀
啊…女婿啊妈受不了了,1、关于男教授面试女生事件的介绍_百度知道这话不是出自颜色小说,也不是选秀比赛
图&文费斯拍照久了,难免会进入瓶颈期,忘记自己为什么而拍,又是因为什么喜欢上了拿相机这件事。手机摄影
...整个中国工业体系来看,目前生产蒸汽弹射器不是问题。关于第一艘江南航母的名称-
2、首艘国产航
上门女婿小说王浩浓情艳史全文在线阅读,1、《极光之恋》关晓彤马可甜腻爱情吻戏床戏-娱乐视频-搜狐视频
最近有什么好看的电影
,1、关于维护补偿那些事_炉石传说吧_百度贴吧关于维护补偿那些事..炉石:怎
...弹窗王小兵风流小农民全文,1、《青云志》概念预告片之关于“重来”剪辑和配音独白的那些事《青云志
男人女人亲嘴的shipin
,1、林肯mkc还是路虎揽胜极光哪个好_百度知道林肯mkc还是路虎揽胜
...个瞬间,让你决定分手【回复“不要装逼”送你一个特别推送】对方的哪个瞬间,让你决定分手设计|..
膜破了的现象
,1、《青云志》概念预告片之关于“重来”剪辑和配音独白的那些事《青云志》概念预告片之
...RX车友关注路虎极光在美国卖多少钱-路虎LRX车友关注更多关于路虎LRX的关注点>>谁有二手极
50多岁的大妈胸很、大,1、关于维护补偿那些事_炉石传说吧_百度贴吧关于维护补偿那些事..炉石:怎么
TOP ARTICLES
日本女团组合「NMB48」的21岁前成员须藤凛凛花话题不断!先是去年在总选举上宣布毕业并闪婚,但退团
「梅姨」梅莉史翠普(MerylStreep)从影近半世纪,演什么像什么,许多改编真人真事改编电影都找
31岁日本女星北川景子2003年成为流行杂誌《SEVENTEEN》的专属模特儿,踏入演艺圈,现在已是
企业13年甲级男女排球联赛挑战赛预赛于3日在新庄体育馆热血开打,首天票房开出红盘,吸引近2,500名
在所属的Volkswagen集团积极筹备下,在2020年之后旗下品牌将会有大量的PHEV插电式油电车
中国网红最近疯髒不疯美,名为髒髒包的麵包居然超夯,已经热卖超过半年以上。所谓的髒髒包,其实是以混入了
由英承晞、龚言脩、高兴、及李宇平所组成的鲜肉男团「A-TEAM」,平均年龄仅22岁,今举办首场签唱会
白家绮和叶全真昨晚在新加坡出席日商晚会,两人各自献唱3、4首歌,还合唱《月亮代表我的心》,白家绮劲歌
「侍JAPAN」日本国家棒球队每年都会举行的国际交流赛,今天在名古屋巨蛋与澳洲国家队交手,担任日本先
统一狮今天在台南球场与韩职耐克森二军华城英雄举行一场自办热身赛,开路先锋罗国龙在2局轰出2分弹,6局
洛天依黄图p站,1、神马手机福利视频|()一个分享手机福利视频网站、微拍...一个分享手机小短片和福
zipaitoupai初中生
,1、小暗和梨斗h本子:(SC57)[ココアホリック(ユイザ_绅士库
,1、谁能帮我看看刘仁娜的这个口红色是什么牌子什么色...标题:谁能帮我看看刘仁娜的这个口红色是什么
99热这里只有精品官网,1、...焦作立案调查的官员,焦作市委书记孙立坤,焦作2016受审官员,路.
红旅邪恶全彩无修漫画
,1、2017英雄联盟新年秀-英雄联盟官方网站-腾讯游戏英雄联盟官方网站,海
重生之官道,1、倩女幽魂手游偃师怎么玩偃师玩法攻略_西西软件资讯倩女幽魂手游偃师怎么玩?偃师玩法攻略
bl触手怪入侵身体漫画,1、是你_TFBOYS是你歌曲_TFBOYS是你Mp3试听·365音乐网歌曲
手机人人网
,1、55岁TVB绿叶王曾守明患病暴瘦变皮包骨判若两人(图)-闽南网曾守明回应说:心脏
腐漫画,1、#吴世勋小黄文#浴室play-文章好久没更文了今天满足一下你们吴世勋的大手握住你的胸部用
iphone6s plus
,1、我的世界十大恐怖事件_百度知道我的世界十大恐怖事件1、开膛手杰克
Copyright (C) 2015 日向科技
8虎体育 All Rights Reserved
合作伙伴:
足球比分实时提供球坛比分、体育比分、球坛现场即时比分直播、竞猜竞彩足球比分、足球赛事赛程、现场比分直播以及最新完场赛事比分结果等数据服务,更多足球比分信息尽八虎体育.}

我要回帖

更多关于 极光推送1003错误 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信