极光推送随笔

这些都出自极光推送的官方文档上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中选择最新的值即可。





阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013929312/article/details/40870047
个人分类: 开发路上
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭