ios ios极光推送没有声音channel什么意思

iOS 版本的 App 用极光推送好还是苹果的推送引擎好呢? - 知乎10被浏览2270分享邀请回答4添加评论分享收藏感谢收起1添加评论分享收藏感谢收起查看更多回答关于集成iOS&极光推送的感受
&因为项目需要所以我就去学着集成下极光推送,极光推送的代码集成非常简单,但是一不小心也会出现让人特别头疼的问题,今天我就来总结下我在集成极光推送过程中所需到的一些问题。
&极光推送的集成过程非常简单只要我们按照官方文档上一步步的往下做就可以完成极光推送的集成
1.配置开发证书(得有开发者账号,个人,企业的都可以)
开发环境测试
在对 JPush iOS 开发环境进行测试前,请确保 3 个统一:
App 是开发环境打包(开发证书 Development)
上传了开发证书并验证通过
Portal 上的应用设置为开发环境
发布环境测试
在对 JPush iOS 生产环境进行测试前,请确保 3 个统一:
App 是 ad-hoc 打包或者App Store 版本(发布证书 Production)
上传了发布证书并验证通过
Portal 上的应用设置为生产环境
iOS 证书 设置指南
创建应用程序ID
登陆&&选择进入iOS Provisioning
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/login.png" ALT="jpush_ios" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
在&中,点击App IDs进入App
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/appid.png" ALT="" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
App ID,如果 ID 已经存在可以直接跳过此步骤
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/appid2.png" ALT="jpush_ios" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
App 开启 Push Notification 功能。如果是已经创建的 App ID 也可以通过设置开启 Push
Notification 功能。
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/appservice.png" ALT="jpush_ios" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
根据实际情况完善 App ID 信息并提交,注意此处需要指定具体的 Bundle ID 不要使用通配符。
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/appid3.png" ALT="jpush_ios" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
配置和下载证书
如果你之前没有创建过 Push 证书或者是要重新创建一个新的,请在证书列表下面新建。
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/cer0.png" ALT="" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
新建证书需要注意选择证书种类(开发证书用于开发和调试使用,生产证书用于 App Store 发布)
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/cer1.png" ALT="" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
Continue 后选择证书对应的应用ID,然后继续会出现“About Creating a Certificate Signing
Request (CSR)”。
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/cer2.png" ALT="" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
根据它的说明创建打开KeychainAccess 创建 Certificate Signing Request。
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/Screenshot_13-4-1_5_22.png" ALT="" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
填写“User Email Address”和“Common Name” 后选择 Saved to disk 进行保存 。
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/Snip.png" ALT="" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
继续返回Apple developer 网站点击 Continue ,上传刚刚生成的 .certSigningRequest 文件生成
APNs Push Certificate。
下载并双击打开证书,证书打开时会启动“钥匙串访问”工具。
在“钥匙串访问”中你的证书会显示在“我的证书”中,注意选择“My Certificates” 和"login"
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/keychain_cert.png" ALT="jpush_ios" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
导出 .p12 证书文件
注意要选“login”和“My Certificates” 导出证书时要选中证书文件,不要展开private key。
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/export_p12.png" ALT="jpush_ios" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
将文件保存为Personal Information Exchange (.p12)格式。
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/export_filename.png" ALT="" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
将文件保存为Personal Information Exchange (.p12)格式。
在&,针对某应用程序,上传上面步骤得到 .p12 证书文件。这是 iOS
SDK 能够接收到 JPush 推送消息的必要步骤。
Provisioning Profile的创建
创建Provisioning Profile的前提,已在Apple Developer网站创建待发布应用所使用的Bundle
ID的App ID,且为该App ID创建了APNs证书,如下图:
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/appidcer.png" ALT="jpush_ios" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
ID、APN证书和p12证书的导出的具体步骤请看 :
在页面点击下图按钮,创建Provisioning Profile
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/provision_profile.png" ALT="jpush_ios" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
选择此Provisioning Profile的环境后点击[Continue]:
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/create_pp_type.png" ALT="jpush_ios" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
选择要创建Provisioning Profile的App ID后点击[Continue]:
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/pp_appid_new.png" ALT="jpush_ios" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
选择所属的开发者证书,(这里创建了多个开发者证书,建议只创建一个,方便管理)为了方便,选择了[Select
All],再点击[Continue]进入下一步:
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/select_cer.png" ALT="jpush_ios" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
为该Provisioning Profile选择将要安装的设备(一般选择[Select
All]),点击[Continue]:
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/select_devices.png" ALT="jpush_ios" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
给该Provisioning Profile填写Profile Name,点击[generate]完成创建。
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/pp_name.png" ALT="jpush_ios" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
填写完Profile Name后点击[generate]完成创建,之后点击[DownLoad]下载Provisioning
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/download_pp.png" ALT="jpush_ios" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
双击下载下来的Provisioning Profile,添加到xcode。
2. Xcode的证书配置教程
参照集成JPush SDK
和上传了推送用到的p12证书后在编译运行前需要先配置一下证书,步骤如下:
打开xxx-info.plist的Bundle identifier项把上传到JPush 控制台的bundle
id填写进去:
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/xcode_bundle.png" ALT="jpush_ios" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
点击项目,选择目标TARGETS后进入Build Setting 界面,搜索“Code signing”,按照下图配置
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/xcode_buildsettings_cs.png" ALT="jpush_ios" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
客户端设置
开启Remote notifications
需要在Xcode 中修改应用的 Capabilities 开启Remote notifications,请参考下图:
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/client/image/Snip.png" ALT="" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
3.SDK集成步骤
集成压缩包内容
包名为JPush-iOS-SDK-{版本号}
lib文件夹:包含头文件 JPUSHService.h,静态库文件jpush-ios-x.x.x.a ,支持的iOS版本为 5.0
及以上版本。(请注意:模拟器不支持APNs)
pdf文件:集成指南
demo文件夹:示例
使用Xcode 6及以上版本可以使用新版Push SDK,XCode 5环境下需要运行旧版本SDK(1.7.4)
1、在JPush Portal上创建应用
JPush的管理Portal 上创建应用并上传APNs证书。如果对APNs证书不太了解
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/guideline/image/create_ios_app.jpg" ALT="jpush_ios" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
创建成功后自动生成 AppKey 用以标识该应用。
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/guideline/image/Screenshot_13-4_2_create.jpg" ALT="jpush_ios" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
2、导入API开发包到应用程序项目
将SDK包解压,在XCode中选择“Add files to 'Your project
name'...”,将解压后的lib子文件夹(包含JPUSHService.h、jpush-ios-x.x.x.a)添加到你的工程目录中。
3、必要的框架
CFNetwork.framework
CoreFoundation.framework
CoreTelephony.framework
SystemConfiguration.framework
CoreGraphics.framework
Foundation.framework
UIKit.framework
Security.framework
Xcode7需要的是libz.tbd;Xcode7以下版本是libz.dylib
4、Build Settings
如果你的工程需要支持小于7.0的iOS系统,请到Build Settings 关闭 bitCode
选项,否则将无法正常编译通过。
Search Paths 下的 User Header Search Paths 和 Library Search
Paths,比如SDK文件夹(默认为lib)与工程文件在同一级目录下,则都设置为"$(SRCROOT)/{静态库所在文件夹名称}"即可。
5、创建并配置PushConfig.plist文件
版本开始,新增了带参数的setupWithOption初始化方法,可通过此方法等参数传入AppKey等信息。1.8.8及之前版本的
JPush SDK只能通过PushConfig.plist配置AppKey等信息。
在你的工程中创建一个新的Property List文件,并将其命名为PushConfig.plist,文件所含字段如下:
指明应用程序包的下载渠道,为方便分渠道统计,具体值由你自行定义,如:App Store。
填写后自动生成的AppKey值。请确保应用内配置的 AppKey 与第1步在
Portal 上创建应用后生成的 AppKey 一致。
APS_FOR_PRODUCTION
1.3.1版本新增,用于标识当前应用所使用的APNs证书环境。
(默认值)表示采用的是开发证书,1 表示采用生产证书发布应用。
注:此字段的值要与Build Settings的Code Signing配置的证书环境一致。
在1.2.2或之前版本的配置文件中,有 TEST_MODE 这个键,新版的SDK不再使用,可以将它删除。
PushConfig.plist文件示例图:
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://docs.jpush.io/guideline/image/Screenshot_13-4-15_3_31.png" ALT="jpush_ios" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
6、添加代码
2.1.0版本开始,API类名为JPUSHService,不再使用原先的APService。
允许XCode7支持Http传输方法
如果用的是Xcode7时,需要在App项目的plist手动加入以下key和值以支持http传输:
NSAppTransportSecurity
NSAllowsArbitraryLoads
集成所需API
APIs 主要集中在 JPUSHService 接口类里。
初始化JPush方法分为两个:
1.8.8及以下版本使用的是已过期的初始化方法。升级到2.1.0的老用户仍可继续使用旧的初始化方法。
2.1.0版本开始提供带appkey等参数的新初始化方法。使用此方法无需再添加PushConfig.plist配置JPush的AppKey等字段。
4.项目代码:
&AppDelegate.h里面的代码:
staticNSString&*appKey
=&@"4fd48a0712a3fde75eb1c7423";//申请应用成功以后官方会提供给你
staticNSString&*channel
=&@"Publish channel";
staticBOOL&isProduction
@interface&AppDelegate
:UIResponder&&&span
class="s2" style="margin: 0 padding:
0"&UIApplicationDelegate&
@property&(strong,nonatomic)&UIWindow&*
#import"AppDelegate.m"中的代码
#import&"AppDelegate.h"
#import&"JPUSHService.h"
@interface&AppDelegate&()
@implementation&AppDelegate
- (BOOL)application:(UIApplication&*)application
didFinishLaunchingWithOptions:(NSDictionary&*)launchOptions
&&// Override point for customization
after application launch.
&&self.window.backgroundColor&= [UIColorwhiteColor];
& [self.windowmakeKeyAndVisible];
&&if&([[UIDevicecurrentDevice].systemVersionfloatValue] &=&8.0)
&&//可以添加自定义categories
[JPUSHServiceregisterForRemoteNotificationTypes:(UIUserNotificationTypeBadge&|
&UIUserNotificationTypeSound&|
&UIUserNotificationTypeAlert)
&&categories:nil];
& }&else&{
&&//categories&必须为nil
[JPUSHServiceregisterForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge&|
&UIRemoteNotificationTypeSound&|
&UIRemoteNotificationTypeAlert)
&&categories:nil];
& [JPUSHServicesetupWithOption:launchOptions&appKey:appKey
&&channel:channelapsForProduction:NO];
&&returnYES;
- (void)application:(UIApplication&*)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData&*)deviceToken
&&// Required
& [JPUSHServiceregisterDeviceToken:deviceToken];
- (void)application:(UIApplication&*)application
didReceiveRemoteNotification:(NSDictionary&*)userInfo
&&// Required,For systems with less than
or equal to iOS6
& [JPUSHServicehandleRemoteNotification:userInfo];
- (void)application:(UIApplication&*)application
didReceiveRemoteNotification:(NSDictionary&*)userInfo
fetchCompletionHandler:(void&(^)(UIBackgroundFetchResult))completionHandler
&&// IOS 7 Support
& [JPUSHServicehandleRemoteNotification:userInfo];
& completionHandler(UIBackgroundFetchResultNewData);
- (void)application:(UIApplication&*)application
didFailToRegisterForRemoteNotificationsWithError:(NSError&*)error
&&//Optional
&&NSLog(@"did Fail To Register For Remote
Notifications With Error: %@",
- (void)applicationWillResignActive:(UIApplication&*)application
&&// Sent when the application is about
to move from active to inactive state. This can occur for certain
types of temporary interruptions (such as an incoming phone call or
SMS message) or when the user quits the application and it begins
the transition to the background state.
&&// Use this method to pause ongoing
tasks, disable timers, and throttle down OpenGL ES frame rates.
Games should use this method to pause the game.
- (void)applicationDidEnterBackground:(UIApplication&*)application
&&// Use this method to release shared
resources, save user data, invalidate timers, and store enough
application state information to restore your application to its
current state in case it is terminated later.
&&// If your application supports
background execution, this method is called instead of
applicationWillTerminate: when the user quits.
- (void)applicationWillEnterForeground:(UIApplication&*)application
&&// Called as part of the transition
from the background t here you can undo many
of the changes made on entering the background.
- (void)applicationDidBecomeActive:(UIApplication&*)application
&&// Restart any tasks that were paused
(or not yet started) while the application was inactive. If the
application was previously in the background, optionally refresh
the user interface.
- (void)applicationWillTerminate:(UIApplication&*)application
&&// Called when the application is
about to terminate. Save data if appropriate. See also
applicationDidEnterBackground:.
4.真机测试:
登陆到极光推送官网:<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://img.blog.csdn.net/08262?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" ALT="" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
点击控制台:
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://img.blog.csdn.net/09264?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" ALT="" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
选择应用,也就是你创建测试的项目:我的项目是aa.TestPush
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://img.blog.csdn.net/32110?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" ALT="" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
选中以后点击进入到下面这里:
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://img.blog.csdn.net/42133?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" ALT="" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
点击上面的推送:
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://img.blog.csdn.net/41144?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" ALT="" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
点击左边的发送通知,也可以选择自定义消息(这里我选择的发送通知):
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://img.blog.csdn.net/33322?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" ALT="" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
这里我随便写点什么用我手机测试:
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://img.blog.csdn.net/42495?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" ALT="" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://img.blog.csdn.net/58402?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" ALT="" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
点击立即发送:
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://img.blog.csdn.net/24621?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" ALT="" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://img.blog.csdn.net/05234?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" ALT="" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
手机上的显示:
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://img.blog.csdn.net/43956?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" ALT="" STYLE="margin: 0 padding: 0 max-width: 900"
TITLE="关于集成iOS&极光推送的感受" />
注:这里面有几个地方必须特别注意
1.一定要确保上传证书的Bundel Id
与Xcode项目里面的info.plist里面的Bundel Id 项目
2.在配置证书的时候一定要特别留意,特别是在Build Setting
--&code signing里面配置的时候
3.在上传证书的时候一定要注意证书和环境的相互对应
ps:在我一开始设置将这些都配置好之后却出现了一个问题,就是不管我推送的数据是有几条,我App的角标(推送消息数)始终为1,而且当我查看完推送的消息之后,App的角标没有被清0,一下是我对这个问题的解决办法
1.首先解决,当我们连续推送N条消息的时候,App的角角标没有加1的问题,角标始终为1的问题,在我查找了很多博客之后,终于找到了解决的办法。
在遇到小红点不+1,始终为1的情况之后,我就去看开发文档了,从原理到运用,细细看了一遍,极光有说这个+1的问题,博主发现,不管是直接用setBadge方法还是UIAplication来设置小红点,都是不管用的,万年老1,然后推送的时候设置badge,可以了,但是我想很多开发者应该都跟博主差不多不想用服务端给的badge,况且有的后台嫌麻烦会推给app来设置,那么究竟该怎么设置,极光文档里说可以在web推送那里设置badge为“+1”来实现,在进入app时使用reSetBadge方法来清空badge,一开始博主设置了+1,&
就是这里,莫名其妙后面的几个选项还打了勾,然而还是不行,尝试了几次后,博主发现不是不行,是因为设置“+1”的“+”格式不对,必须要英文格式下的+,汉语模式下输入的+是不行的。&
2.下面我们解决一下,APP的角标在我们查看完推送的消息之后,并没有清0的问题
首先我们需要了解到极光推送的三种进入的方式1:第一种从后台进入到前台,第二种点击推送进入,第三种应用程序正在进入的时候收到推送。
1.对于第一种方式,从后台进入到前台的情况
我们只需要在-
(BOOL)application:(UIApplication
*)application
didFinishLaunchingWithOptions:(NSDictionary
*)launchOptions
;方法中,加入以下两句代码即可完成,程序由后台进入前台这种情况的清0
[JPUSHService
resetBadge];
&[[UIApplication
sharedApplication]
setApplicationIconBadgeNumber:0];
2.对于后两种方法,也就是程序后台挂起的状态
(void)application:(UIApplication
*)application
didReceiveRemoteNotification:(NSDictionary
*)userInfo
fetchCompletionHandler:(void
(^)(UIBackgroundFetchResult))completionHandler
;方法中,加入上面的那两句代码即可完成对于程序后台挂机状态的清0工作;
[JPUSHService&resetBadge];
&[[UIApplication&sharedApplication]&setApplicationIconBadgeNumber:0];
以上的内容就是我这个集成极光推送时的过程和遇到的一些情况,希望对大家有所帮助。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 ios 极光推送消息处理 的文章

 

随机推荐