进阶功能

进阶功能

1. 发送自定义回执

类名 com.igexin.sdk.PushManager
接口 public boolean sendFeedbackMessage(Context context,String taskid,String messageid,int actionid)

说明:

第三方自定义回执,可用于数据统计

参数:

  • context:应用的 Context
  • taskid:下发任务的任务 ID
  • messageid:下发任务的消息 ID
  • actionid:用户自定义的 actionid,int 类型,取值 90001-90999,厂商可用范围60001-60999

返回:

true:发送成功;false:发送失败;taskid 为空或者 messageid 为空 或者 actionid 不在取值范围以内

接口调用示例:

在个推回调中发送回执

@Override
public void onReceiveMessageData(Context context, GTTransmitMessage msg) {
      byte[] payload = msg.getPayload(); 
      String data = new String(payload); 
      Log.d(TAG, "receiver payload = " + data);

      String taskid = msg.getTaskId();
      String messageid = msg.getMessageId(); 
    /***
    * 第三方回执调用接口,actionid可根据业务场景自定义数值
    */
    boolean result = PushManager.getInstance().sendFeedbackMessage(context, taskid, messageid, actionid);
}

  • 个推厂商用户可用此功能统计自定义通知埋点,60001表示“通知展示”,60002表示“通知点击”。详细请联系技术支持QQ:3007288200

2. 设置标签

类名 com.igexin.sdk.PushManager
接口 public int setTag(Context context,Tag[] tag, String sn)

说明:

  • 设置一组标签,后续可使用该标签定向推送
  • 需要在获取到 Clientid 之后调用。默认一天只能成功设置一次(可联系技术支持进行修改)
  • 请求结果见用户 IntentService 中的onReceiveCommandResult(Context context, GTCmdMessage cmdMessage)

参数:

  • context:应用的 Context
  • tag:用户标签, 具体参考 setName 接口
  • sn:用户自定义的序列号,用来唯一标识该动作,用户 IntentService 中会回执该结果

接口调用示例:

String[] tags = new String[] {"tag1", "tag2", "tag3"};
Tag[] tagParam = new Tag[tags.length];

for (int i = 0; i < tags.length; i++) {
      Tag t = new Tag();
      //name 字段只支持:中文、英文字母(大小写)、数字、除英文逗号和空格以外的其他特殊符号,具体请看代码示例
      t.setName(tags[i]);
      tagParam[i] = t;
}
PushManager.getInstance().setTag(context, tagParam, String.valueOf(System.currentTimeMillis()));

请求结果处理示例:

// 在用户 IntentService 中添加以下代码:
@Override
public void onReceiveCommandResult(Context context, GTCmdMessage cmdMessage) {
    Log.d(TAG, "onReceiveCommandResult -> " + cmdMessage);

    int action = cmdMessage.getAction();
    if (action == PushConsts.SET_TAG_RESULT) {
        String sn = ((SetTagCmdMessage) cmdMessage).getSn();
        String code = ((SetTagCmdMessage) cmdMessage).getCode();
        /*  code 值说明
            0:成功
            10099:SDK 未初始化成功
            20001tag 数量过大(单次设置的 tag 数量不超过 100)
            20002:调用次数超限(默认一天只能成功设置一次)
            20003:标签重复
            20004:服务初始化失败
            20005:setTag 异常
            20006tag 为空
            20007:sn 为空
            20008:离线,还未登陆成功
            20009:该 appid 已经在黑名单列表(请联系技术支持处理)
            20010:已存 tag 数目超限
            20011tag 内容格式不正确 */
        Log.d(TAG, "settag result sn = " + sn + ", code = " + code );
    }
}

3. 设置 Tag 的 Name

类名 com.igexin.sdk.Tag
接口 public void setName(String name)

说明:

设置当前 Tag 的 Name 值

参数:

name:需要传入的 Tag 名,只支持以下:中文、英文字母(大小写)、数字、除英文逗号以外的其他特殊符号

4. 绑定别名

类名 com.igexin.sdk.PushManager
接口 public boolean bindAlias(Context context,String alias,String sn)

说明:

  • 绑定别名,后续可以使用该别名进行定向推送,重复绑定以最后一次为准,两次调用的间隔需大于 1s
  • 可用于与客户账号系统关联,建议将邮箱、昵称、手机号等用户标识设为别名
  • 使用场景:同一个账号(比如手机号)分别登陆在 A、B、C 三台设备上的同一个 APP, 产生了 3 个不同的 cid, 想让这三台设备同时接收到推送,就可以考虑使用该接口,让三台设备的三个 cid 都绑定同一个别名也就是你的账号(比如手机号),最多支持 10 台设备,也就是最多绑定 10 个 cid
  • 请求结果见用户 IntentService 中的 onReceiveCommandResult(Context context, GTCmdMessage cmdMessage)

参数:

  • context – 应用的 Context
  • alias – 别名名称:长度 40 字节,支持中、英文(区分大小写)、数字以及下划线
  • sn - 用户自定义的序列号,用来唯一标识该动作

请求结果处理示例

// 在用户 IntentService 中添加以下代码:
@Override
public void onReceiveCommandResult(Context context, GTCmdMessage cmdMessage) {
    Log.d(TAG, "onReceiveCommandResult -> " + cmdMessage);
    int action = cmdMessage.getAction();

    if (action == PushConsts.BIND_ALIAS_RESULT) {
        String sn = ((BindAliasCmdMessage) cmdMessage).getSn();
        String code = ((BindAliasCmdMessage) cmdMessage).getCode();
        /*  code 结果说明
            0:成功
            10099:SDK 未初始化成功
            30001:绑定别名失败,频率过快,两次调用的间隔需大于 5s
            30002:绑定别名失败,参数错误
            30003:绑定别名请求被过滤
            30004:绑定别名失败,未知异常
            30005:绑定别名时,cid 未获取到
            30006:绑定别名时,发生网络错误
            30007:别名无效
            30008:sn 无效 */
        Log.d(TAG, "bind alias result sn = " + sn + ", code = " + code);
    }
}

5. 解绑别名

类名 com.igexin.sdk.PushManager
接口 public boolean unBindAlias(Context context,String alias,boolean isSelf,String sn)

说明:

  • 解绑别名,两次调用的间隔需大于 1s。只能解绑与当前应用 cid 关联的别名
  • 请求结果见用户 IntentService 中的 onReceiveCommandResult(Context context, GTCmdMessage cmdMessage)

参数:

  • context:应用上下文
  • alias:别名名称
  • isSelf:是否只对当前 cid 有效,如果是 true,只对当前 cid 做解绑;如果是 false,对所有绑定该别名的 cid 列表做解绑
  • 用户自定义的序列号,用来唯一标识该动作

请求结果处理示例

// 在用户 IntentService 中添加以下代码:
@Override
public void onReceiveCommandResult(Context context, GTCmdMessage cmdMessage) {
    Log.d(TAG, "onReceiveCommandResult -> " + cmdMessage);

    int action = cmdMessage.getAction();
    if (action == PushConsts.UNBIND_ALIAS_RESULT) {
        String sn = ((UnBindAliasCmdMessage) cmdMessage).getSn();
        String code = ((UnBindAliasCmdMessage) cmdMessage).getCode();
        /* code 结果说明
         0:成功
         10099:SDK 未初始化成功
         30001:解绑别名失败,频率过快,两次调用的间隔需大于 5s
         30002:解绑别名失败,参数错误
         30003:解绑别名请求被过滤
         30004:解绑别名失败,未知异常
         30005:解绑别名时,cid 未获取到
         30006:解绑别名时,发生网络错误
         30007:别名无效
         30008:sn 无效*/
        Log.d(TAG, "unbindAlias result sn = " + sn + ", code = " + code);
    }
}

6. 发送 Applink 点击回执

类名 com.igexin.sdk.PushManager
接口 public boolean sendApplinkFeedback(Context context, String url)

说明:

用于点击回执统计,消息无法下发时,可以通过该方式下发短信进行补量(Android M 开始支持)

参数:

  • context:应用的 Context
  • url:applink url

返回:

true:发送成功;false:发送失败,url 为空

开发者中心 SDK 下载

文档中心搜索