广播推送条件过滤 ### 为什么要对用户进行过滤? 因为广播是针对所有在线用户,为了更精准的推送,必须对目标用户进行筛选,才能满足个性化的业务需求。 ### 目前支持的筛选纬度 1. ```tag```:业务自己打的标签 2. ```userId```:用户登录ID 3. ```clientVersion```:客户端版本 4. ```osName```:客户端系统平台 5. ```osVersion```:客户端系统版本 ### 目前支持的表达式 目前只支持```jvm```内置的```Nashorn```脚本引擎,语法为```javascript```标准语法。 ### 使用用例 具体请参照```com.mpush.api.push.PushContext.java```。 - 灰度20%的在线用户:```userId % 100 < 20``` - 包含test标签的用户:```tags!=null && tags.indexOf("test")!=-1``` - 客户端版本号大于2.0的安卓用户:```clientVersion.indexOf("android")!=-1 && clientVersion.replace(/[^\d]/g,"") > 20```