Android 极光推送别名与标签方式
Android 极光推送 别名、标签、RegistrationID
说明
别名(alias)
为安装了应用程序的用户,取个别名来标识。以后给该用户 Push 消息时,就可以用此别名来指定。每个用户只能指定一个别名。
建议:对于同一个应用内部,建议不同用户设置不同的别名,保证用户别名的唯一性。(极光不限制同一个别名只能对应一个用户。当一个别名指定了多个用户时,当给这个别名推送消息时,这个别名对应的多个用户都会收到推送消息)
标签(tag)
给用户打上标签,主要用于向特定批量用户推送消息。可为一个用户设置多个标签。
registrationId(设备唯一标识)
应用程序在第一次成功注册到极光服务器时,极光服务器会给客户端返回一个唯一的该设备的标识 – RegistrationID。JPush SDK 会以广播的形式发送 RegistrationID 到应用程序。
应用程序可以把此 RegistrationID 保存以自己的应用服务器上,然后就可以根据 RegistrationID 来向设备推送消息或者通知。
setMobileNumber
3.1.1 版本开始提供设置手机号码的接口,用于短信补充功能。
支持的操作
别名与标签,支持增删改查的操作。
registrationId,只支持查询的操作。
alias的操作:
Method - setAlias
调用此 API 来设置别名。
这个接口是覆盖逻辑,而不是增量逻辑。即新的调用会覆盖之前的设置。
public static void setAlias(Context context, int sequence, String alias);
参数定义
sequence
用户自定义的操作序列号,同操作结果一起返回,用来标识一次操作的唯一性。
alias
有效的别名组成:字母(区分大小写)、数字、下划线、汉字、特殊字符@!#$&*+=.|。
限制:alias 命名长度限制为 40 字节。(判断长度需采用 UTF-8 编码)
Method - deleteAlias
调用此 API 来删除别名。
public static void deleteAlias(Context context,int sequence);
Method - getAlias
调用此 API 来查询别名。
public static void getAlias(Context context,int sequence);
tag的操作:
Method - setTags
调用此 API 来设置标签。
需要理解的是,这个接口是覆盖逻辑,而不是增量逻辑。即新的调用会覆盖之前的设置。
public static void setTags(Context context, int sequence,Set tags);
参数定义
sequence
用户自定义的操作序列号,同操作结果一起返回,用来标识一次操作的唯一性。
tags
有效的标签组成:字母(区分大小写)、数字、下划线、汉字、特殊字符@!#$&*+=.|。
限制:每个 tag 命名长度限制为 40 字节,最多支持设置 1000 个 tag,且单次操作总长度不得超过 5000 字节。(判断长度需采用 UTF-8 编码)
单个设备最多支持设置 1000 个 tag。App 全局 tag 数量无限制。
Method - addTags
调用此 API 来新增标签。
public static void addTags(Context context, int sequence,Set tags);
Method - deleteTags
调用此 API 来删除指定标签。
public static void deleteTags(Context context, int sequence,Set tags);
Method - cleanTags
调用此 API 来清除所有标签。
public static void cleanTags(Context context, int sequence);
Method - getAllTags
调用此 API 来查询所有标签。
public static void getAllTags(Context context, int sequence);
Method - checkTagBindState
调用此 API 来查询指定 tag 与当前用户绑定的状态。
public static void checkTagBindState(Context context,int sequence,String tag);
registrationId的操作
SDK 初次注册成功后,开发者通过在自定义的 Receiver 里监听 Action – cn.jpush.android.intent.REGISTRATION 来获取对应的 RegistrationID。
注册成功后,也可以通过函数 public static String getRegistrationID(Context context) 获取
举例子:
当App端初次注册成功后,或注册成功后getRegistrantionId接口得到registrationId,app内部登录时传参registrationId,服务器保存当前的registrationId,服务器根据保存的registrationId推送消息
消息回调方式说明
Class – cn.jpush.android.service.JPushMessageReceiver
新的消息回调方式中相关回调类。
1、新的 tag 与 alias 操作回调会在开发者定义的该类的子类中触发。
2、手机号码设置的回调会在开发者定义的该类的子类中触发。
该类为回调父类,开发者需要继承该类并在 Manifest 中配置您对应实现的类,接口操作的结果会在您配置的类中的如下方法中回调。
Method – onAliasOperatorResult
alias 相关的操作会在此方法中回调结果。
Method – onTagOperatorResult
tag 增删查改的操作会在此方法中回调结果。
Method – onCheckTagOperatorResult
查询某个 tag 与当前用户的绑定状态的操作会在此方法中回调结果。
Method – onMobileNumberOperatorResult
设置手机号码会在此方法中回调结果。
/**
* 自定义JPush message 接收器,包括操作tag/alias的结果返回(仅仅包含tag/alias新接口部分)
* */
public class MyJPushMessageReceiver extends JPushMessageReceiver {
@Override
public void onTagOperatorResult(Context context, JPushMessage jPushMessage) {
TagAliasOperatorHelper.getInstance().onTagOperatorResult(context,jPushMessage);
super.onTagOperatorResult(context, jPushMessage);
}
@Override
public void onCheckTagOperatorResult(Context context, JPushMessage jPushMessage){
TagAliasOperatorHelper.getInstance().onCheckTagOperatorResult(context,jPushMessage);
super.onCheckTagOperatorResult(context, jPushMessage);
}
@Override
public void onAliasOperatorResult(Context context, JPushMessage jPushMessage) {
TagAliasOperatorHelper.getInstance().onAliasOperatorResult(context,jPushMessage);
super.onAliasOperatorResult(context, jPushMessage);
}
@Override
public void onMobileNumberOperatorResult(Context context, JPushMessage jPushMessage) {
TagAliasOperatorHelper.getInstance().onMobileNumberOperatorResult(context,jPushMessage);
super.onMobileNumberOperatorResult(context, jPushMessage);
}
}
以上这篇Android 极光推送别名与标签方式就是小编分享给大家的全部内容了,希望能给大家一个参考。
- ruby学习笔记(5)-模块module的运用
- linux系统root密码遗忘的情况下的解决办法
- ruby学习笔记(4)-动态修改类的属性
- 如果技术是一种生命
- ruby学习笔记(2)--类的基本使用
- 域名资讯:四声域名BHHS.com被BHHS公司收购
- ruby学习笔记(1)--初识语法
- 无法启用数据库中的 Service Broker,因为已存在启用的具有相同 ID 的 Service Broker。
- Centos7.2下针对LDAP的完整部署记录
- .NET Core 已经实现了PHP JIT,现在PHP是.NET上的一门开发语言
- 温故而知新:设计模式之适配器模式(Adapter)
- .NET Core RC2/RTM 明确了时间表
- kvm虚拟化关闭虚拟网卡virbr0的方法
- NET开发学习项目资源(2)
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 【python实现卷积神经网络】卷积层Conv2D反向传播过程
- 【python实现卷积神经网络】全连接层实现
- 来我们聊聊“简单工厂模式”
- 【python实现卷积神经网络】批量归一化层实现
- 【python实现卷积神经网络】池化层实现
- srand()和rand(),生成随机数,留给我自己看
- 【python实现卷积神经网络】padding2D层实现
- mybatis之全局配置文件中的标签
- 【python实现卷积神经网络】Flatten层实现
- Shiro框架学习笔记(二)基于内置ini文件的身份认证
- 【python实现卷积神经网络】上采样层upSampling2D实现
- mybatis映射文件之获取自增的主键
- django实战(二)--带多字段模糊查询的分页(也是不容易)
- 【python实现卷积神经网络】Dropout层实现
- 【python实现卷积神经网络】激活层实现