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);
    参数定义
  1. sequence
    用户自定义的操作序列号,同操作结果一起返回,用来标识一次操作的唯一性。
  2. 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);
    参数定义
  1. sequence
    用户自定义的操作序列号,同操作结果一起返回,用来标识一次操作的唯一性。
  2. 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 使用极光推送绑定别名的代码示例: ```java import cn.jpush.android.api.JPushInterface; // 绑定别名 JPushInterface.setAlias(context, sequence, alias); // 解绑别名 JPushInterface.deleteAlias(context, sequence); ``` 其中,`context` 参数为当前上下文对象,`sequence` 参数为请求码,`alias` 参数为需要绑定的别名。 注意事项: - 绑定别名时,如果已经绑定了别名,则会覆盖之前的别名; - 解绑别名时,如果当前设备没有绑定别名,则不会有任何影响。 另外,在使用极光推送时,需要在 AndroidManifest.xml 文件中添加以下权限: ```xml <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="cn.jpush.android.permission.RECEIVE_MSG" /> <uses-permission android:name="cn.jpush.android.permission.READ_PHONE_STATE" /> <uses-permission android:name="cn.jpush.android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="cn.jpush.android.permission.VIBRATE" /> <uses-permission android:name="cn.jpush.android.permission.RECEIVE_BOOT_COMPLETED" /> ``` 并且,需要在 AndroidManifest.xml 文件中添加以下服务和接收器: ```xml <!-- 极光推送服务 --> <service android:name="cn.jpush.android.service.PushService" android:enabled="true" android:exported="false" > <intent-filter> <action android:name="cn.jpush.android.intent.REGISTER" /> <action android:name="cn.jpush.android.intent.REPORT" /> <action android:name="cn.jpush.android.intent.PushService" /> <action android:name="cn.jpush.android.intent.PUSH_TIME" /> </intent-filter> </service> <!-- 极光推送接收器 --> <receiver android:name="cn.jpush.android.service.PushReceiver" android:enabled="true" > <intent-filter android:priority="1000"> <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" /> <category android:name="${applicationId}" /> </intent-filter> <intent-filter> <action android:name="cn.jpush.android.intent.REGISTRATION" /> <category android:name="${applicationId}" /> </intent-filter> <intent-filter> <action android:name="cn.jpush.android.intent.UNREGISTRATION" /> <category android:name="${applicationId}" /> </intent-filter> <intent-filter> <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" /> <category android:name="${applicationId}" /> <data android:scheme="package" /> </intent-filter> <intent-filter> <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" /> <category android:name="${applicationId}" /> </intent-filter> <intent-filter> <action android:name="cn.jpush.android.intent.ACTION_RICHPUSH_CALLBACK" /> <category android:name="${applicationId}" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.USER_PRESENT" /> <category android:name="${applicationId}" /> </intent-filter> <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver> <!-- 极光推送唤醒接收器 --> <receiver android:name="cn.jpush.android.service.AlarmReceiver" android:enabled="true" /> ``` 以上是 Android 使用极光推送绑定别名的代码示例及注意事项。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值