javaJDK无法设置tag

SamuelTao
2018-06-14 12:39 1.2k 0

实在是有问题,现在测试环境也是不行。我们调用 设置tag并 绑定注册id的接口

(
 jpushClient.updateDeviceTagAlias(addRegistrationId,null,Sets.newHashSet(theTag),null);
),

tag 无法生成

打印日志如下:

[调试] [准备调用 jpushClient.updateDeviceTagAlias]入参:[addRegistrationId18171adc032b4f7d29a,theTag=im_act_2]
[调试] [调用 jpushClient.updateDeviceTagAlias] 完毕

相关代码:

 @Test
public void testAddRemoveDevicesFromTag() {
    String tag = RedisKeyUtil.generteKeyWithPlaceholder(PushTagKeysConstant.INTEGRAL_MALL_ACTIVITY, 2);
    // tzy 18171adc032b4f7d29a  wanghui 13165ffa4e2eca2f2c9
    String registrationId = "18171adc032b4f7d29a";
    String registrationId2 = "333333";
    try {
        pushService.addRemoveDevicesFromTag(tag, registrationId, null);

        boolean f = pushService.isInTagList(tag);
        System.out.println(f);
    } catch (APIConnectionException e) {
        e.printStackTrace();
    } catch (APIRequestException e) {
        e.printStackTrace();
    }
}

@Override
public void addRemoveDevicesFromTag(String theTag,
                           String addRegistrationId, String removeRegistrationId) throws APIConnectionException, APIRequestException {

   if(StringUtil.isBlank(theTag) || (StringUtil.isBlank(addRegistrationId) && StringUtil.isBlank(removeRegistrationId))){
      return;
   }
   // tag 不存在 创建tag
   boolean isExistTag = this.isInTagList(theTag);

   Set<String> toAddUsers = Sets.newHashSet();
   if(StringUtil.isNotBlank(addRegistrationId)){
      //  验证
      if(!isExistTag){
         logger.error("[调试] [准备调用 jpushClient.updateDeviceTagAlias]入参:[addRegistrationId"+addRegistrationId+",theTag="+theTag+"]");
         jpushClient.updateDeviceTagAlias(addRegistrationId,null,Sets.newHashSet(theTag),null);
         logger.error("[调试] [调用 jpushClient.updateDeviceTagAlias] 完毕");
         return;
      }
      if(jpushClient.isDeviceInTag(theTag,addRegistrationId).result){
         return;
      }
      toAddUsers.add(addRegistrationId);
   }
   Set<String> toRemoveUsers = Sets.newHashSet();
   if(StringUtil.isNotBlank(removeRegistrationId)){
      if(!isExistTag){
         return;
      }
      if(!jpushClient.isDeviceInTag(theTag,removeRegistrationId).result){
         return;
      }

      toRemoveUsers.add(removeRegistrationId);
   }

   jpushClient.addRemoveDevicesFromTag(theTag,toAddUsers, toRemoveUsers);
}


@Override
public boolean isInTagList(String tag) throws APIConnectionException, APIRequestException {
   List<String> tags = jpushClient.getTagList().tags;
   return tags.contains(tag);
}

1个回答

热门排序
  • 1、给出你调用后完整的服务端 log 信息 2、在 Java SDK ,updateDeviceTagAlias 和 AddRemoveDevicesFromTag 是两个方法,一个是给 regIstrationID 设置tag和alias 展示全部