极光推送随笔

原创 2014年11月06日 22:27:27
这些都出自极光推送的官方文档上http://docs.jpush.cn/pages/viewpage.action?pageId=3310013

名词:

1. 别名alias:标识应用程序用户,一个用户一个别名,一个别名却可以指定多个用户。
2. 标签tag: 方便把用户分类,一个标签可以有多个用户,一个用户也可以被打上不同的标签。就像选课,一门课可以有多个学生,一个学生也可以上多门课,当某一门课开课的时候,可以给上这门课的学生发送消息。
3.RegistrationID:应用程序在第一次成功注册到 JPush 服务器时,JPush 服务器会给客户端返回一个唯一的该设备的标识 - RegistrationID。JPush SDK 会以广播的形式发送 RegistrationID 到应用程序。反之,应用程序也可以把此 RegistrationID 保存以自己的应用服务器上,然后就可以根据 RegistrationID 来向设备推送消息或者通知。
4. Badge:    badge是iOS用来标记应用程序状态的一个数字,出现在程序图标右上角。

相关重要方法说明:

1. setTagsWithAlias(with Callback)  设置用户的别名和标签,并返回数据告知设置状态
+ (void)setTags:(NSSet *)tags alias:(NSString *)alias callbackSelector:(SEL)cbSelector object:(id)theTarget;
参数说明
  • alias
    • nil 此次调用不设置此值。
    • 空字符串 (@"")表示取消之前的设置。
    • 每次调用设置有效的别名,覆盖之前的设置。
    • 有效的别名组成:字母(区分大小写)、数字、下划线、汉字。
    • 限制:alias 命名长度限制为 40 字节。(判断长度需采用UTF-8编码)
  • tags
    • nil 此次调用不设置此值。
    • 空集合([NSSet set])表示取消之前的设置。
    • 每次调用至少设置一个 tag,覆盖之前的设置,不是新增。
    • 有效的标签组成:字母(区分大小写)、数字、下划线、汉字。
    • 限制:每个 tag 命名长度限制为 40 字节,最多支持设置 100 个 tag,但总长度不得超过1K字节。(判断长度需采用UTF-8编码)
    • 单个设备最多支持设置 100 个 tag。App 全局 tag 数量无限制。
  • callbackSelector
    • nil 此次调用不需要 Callback。
    • 用于回掉返回对应的参数 alias, tags。并返回对应的状态码:0为成功,其他返回码请参考错误码定义。
    • 回调函数请参考SDK 实现。
  • theTarget
    • 参数值为实现了callbackSelector的实例对象。
    • nil 此次调用不需要 Callback。
2. setTags--该方法是 setTagsWithAlias (with Callback) 的简化版本,用于只变更标签的情况。
+ (void)setTags:(NSSet *)tags callbackSelector:(SEL)cbSelector object:(id)theTarget;
3.setAlias--该方法是 setTagsWithAlias (with Callback) 的简化版本,用于只变更别名的情况。
+ (void)setAlias:(NSString *)alias callbackSelector:(SEL)cbSelector object:(id)theTarget;
4. filterValidTags--用于过滤出正确可用的 tags。如果总数量超出最大限制则返回最大数量的靠前的可用tags。
使用建议

设置 tags 时,如果其中一个 tag 无效,则整个设置过程失败。

如果 App 的 tags 会在运行过程中动态设置,并且存在对 JPush SDK tag 规定的无效字符,则有可能一个 tag 无效导致这次调用里所有的 tags 更新失败。

这时你可以调用本方法 filterValidTags 来过滤掉无效的 tags,得到有效的 tags,再调用 JPush SDK 的 set tags / alias 方法。

+ (NSSet*)filterValidTags:(NSSet*)tags;

5. setBadge----设置JPush服务器中存储的badge值
+(BOOL)setBadge:(int)value--value的取值范围:[0,99999]////////设置badge值,本地仍须调用UIApplication:setApplicationIconBadgeNumber函数
6, resetBadge----清空JPush服务器中存储的badge值,即[APService resetBadge];

推送注意问题:

1.提示“You've implemented -[<UIApplicationDelegate> application:didReceiveRemoteNotification:fetchCompletionHandler:], but you still need to add "remote-notification" to the list of your supported UIBackgroundModes in your Info.plist.”

解决:在项目配置的Capabilities菜单的Background Modes菜单中选中“Remote notification”。如果没有看到选项菜单,需要将Background Modes菜单打到ON状态。

2.提示“Not get deviceToken yet. Maybe: your certificate not configured APNs? or current network is not so good so APNs registration failed?  or there is no APNs register code? Please refer to JPush docs.”

原因:我的CodeSigning中的Provision Profile没有选择正确,原因是我在apple的dev中心修改了配置,但没有更新到xcode。更新可以在账户管理中找到,xcode菜单在Xcode->Preferences->account选项卡,在Apple IDs中找到你得账号,点击右下角的view detail按钮,在弹出的窗口中点击左下角的刷新按钮即可刷新最新的Provision Profile。最后在CodeSigning中的Provision Profile中选择最新的值即可。





版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Cordova 使用极光推送 的几个问题

Cordova 集成 极光推送 Jpush

iOS开发-进阶:JPush设置标签与别名的API

标签与别名 API (iOS) 功能说明 温馨提示,设置标签别名请注意处理call back结果。 只有call back 返回值为 0 才设置成功,才可以向目标推送。否则服务器...

极光 通过js函数

iOS和adnroid通用API简介 停止与恢复推送服务 API window.plugins.jPushPlugin.init() window.plugins.jPushPlugin....
  • pdw2009
  • pdw2009
  • 2015年08月20日 16:03
  • 1650

Jpush踩过的坑

JPush集成,客户端和服务端都不需要进行二次开发,只要配置一下就可以了,最多发送消息这块服务端需要调用一下Jpush的接口,就一个http请求,非常简单,要是不想自建推送平台,Jpush,Mipus...

JPush极光推送的原理与简单demo的实现会遇到的问题

JPush极光推送的原理与简单demo的实现会遇到的问题

iOS 集成极光推送(二)

刚接触iOS推送的童鞋可以看下 iOS集成极光推送(一)。我们在根据极光官网如果按照教程一步一步的来做的话,应该就能够集成好极光的推送,但是,现在我们还需要完善下推送的细节。 推送的声音怎么自定义; ...
  • pelsor
  • pelsor
  • 2016年04月20日 17:16
  • 750

Andriod极光推送SDK-demo

  • 2015年01月14日 14:59
  • 976KB
  • 下载

极光推送完整工具类utils

  • 2017年10月25日 13:45
  • 123KB
  • 下载

Android 极光推送获取自定义消息

转至:http://www.sjsjw.com/100/009151MYM003117/ 参考官方Android SDK 教程完成激光推送的基本配置区别通知和自定义消...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:极光推送随笔
举报原因:
原因补充:

(最多只允许输入30个字)