コード例 #1
0
ファイル: W2PUSH.php プロジェクト: alonexy/lea
 /**
  * 以keyvalue的组合方式来重设tag,(先删除已有的keyvalue)
  * @param  string  $p_deviceTokens 用户推送ID,百度里是buserid,支持数组或逗号隔开的字符串
  * @param  int   $device_type 设备类型 1:浏览器设备 2:pc设备 3:Android设备 4:ios设备 5:windows phone设备
  * @param string $tag_key        key
  * @param string $tag_values     value值,若为空,则删除所有key数据
  */
 public static function BatchSetTagValue($p_deviceTokens, $device_type, $tag_key, $tag_values)
 {
     $newTagnames = array();
     $addTagnames = array();
     $delTagnames = array();
     $ret = array();
     $tag_values = is_array($tag_values) ? $tag_values : explode(',', $tag_values);
     foreach ($tag_values as $tag_value) {
         if ($tag_value != null) {
             $newTagnames[] = $tag_key . $tag_value;
         }
     }
     $p_deviceTokens = is_array($p_deviceTokens) ? $p_deviceTokens : explode(',', $p_deviceTokens);
     foreach ($p_deviceTokens as $p_deviceToken) {
         $tagnames = W2PUSH::queryTokenTags($p_deviceToken, $device_type);
         if (is_array($tagnames)) {
             $addTagnames = array_diff($newTagnames, $tagnames);
             foreach ($tagnames as $tagname) {
                 if (strpos($tagname, $tag_key) === 0 && !in_array($tagname, $newTagnames)) {
                     $delTagnames[] = $tagname;
                 }
             }
         }
         $ret[] = W2PUSH::BatchAddTag($p_deviceToken, $device_type, $addTagnames);
         $ret[] = W2PUSH::BatchDelTag($p_deviceToken, $device_type, $delTagnames);
     }
     return $ret;
 }