快应用推送 SDK API

SDK 初始化 API

  • JPushInterface.init(context,appkey:string,channel:string)

    • 接口说明:
      • 初始化接口。需app.ux的onCreate中调用。之后在其它模块中可使用this.$app.JPushInterface方式进行其它接口调用。
    • 参数说明:

      • context:应用上下文
      • appkey:官网中创建应用后分配的appkey
      • channel:渠道名称,默认值为:default-channel
    • 调用示例:

    this.JPushInterface=JPushInterface.init(this,"官网中创建应用后分配的appkey","自定义channel");
  • JPushInterface.setDebugMode(enable:boolean)
    • 接口说明:
      • 设置是否开启debug模式。true则会打印更多的日志信息。设置false则会关闭sdk的所有日志打印,建议在init接口之前调用。
    • 参数说明:
      • enable:debug开关
    • 调用示例:
    JPushInterface.setDebugMode(true);

获取JPush RegistrationID

  • JPushInterface.registrationID(callback: (code: number, regId: string)=>void)

    • 接口说明:

      • 获取推送RegistrationID接口
    • 参数说明:

      • callback:RegistrationID回调
        • code: 错误码
        • regID: 推送RegistrationID
    • 调用示例:
    this.$app.JPushInterface.registrationID((code, regID)=>{})

厂商推送

  • JPushInterface.registerQuickPush(callback: (code: number, msg: string)=>void)
    • 接口说明:
      • 注册厂商推送
    • 参数说明:
    • callback:
      • 返回对应的状态码:0 为成功,-1为该厂商不支持推送
    this.$app.JPushInterface.registerQuickPush((code, msg)=>{})    

极光推送

  • JPushInterface.subscribeJPushNotify(callback: (title:string, content: string, url: string)=>void)
    • 接口说明:
      • 订阅极光推送;当应用处于前台时收到设置了前台不展示的极光推送(非厂商推送),推送将不会以通知的形式展示到通知栏,而是通难过这个回调接口将通知回调给客户端。
    • 参数说明:
    • callback:
      • 标题,内容,跳转链接
    this.$app.JPushInterface.subscribeJPushNotify((title, content, url)=>{})    

自定义消息

  • JPushInterface.subscribeJPushMessage(callback: (title:string, content: string, msgid: string, extra:object)=>void)
    • 接口说明:
      • 通过该接口接受自定义消息 Push。
        SDK 对自定义消息,只是传递,不会有任何界面上的展示。
    • 参数说明:
    • callback:
      • 标题,内容,消息id,透传对象
    this.$app.JPushInterface.subscribeJPushMessage((title, content, msgid, extra)=>{})    

标签与别名

  • JPushInterface.addTags(tags: [string], seq: number, callback: (code: number, tags: [string], seq: number)=>void)
    • 接口说明:
      • 调用此 API 来增加标签,在 callback 中返回结果
    • 参数说明:
      • tags
        • 不能设置 nil 或者空集合([NSSet set])
        • 集合成员类型要求为 NSString 类型
        • 每次调用至少设置一个 tag
        • 有效的标签组成:字母(区分大小写)、数字、下划线、汉字、特殊字符@!#$&*+=.|
        • 限制:每个 tag 命名长度限制为 40 字节,最多支持设置 1000 个 tag,但总长度不得超过 5 K 字节。(判断长度需采用 UTF-8 编码)
        • 单个设备最多支持设置 1000 个 tag。App 全局 tag 数量无限制单个设备最多支持设置 1000 个 tag。App 全局 tag 数量无限制
      • seq:
        • 请求时传入的序列号,会在回调时原样返回
    • callback:
      • 用于回调返回对应的参数 tags。并返回对应的状态码:0 为成功,其他返回码请参考错误码定义。seq 为调用时传入的会话序列号
    this.$app.JPushInterface.addTags(["1","2"], 0, (code, tags, seq)=>{})    
  • JPushInterface.setTags(tags: [string], seq: number, callback: (code: number, tags: [string], seq: number)=>void)
    • 接口说明:
      • 调用此 API 来设置标签,在 block 中返回结果
        Note:这个接口是覆盖逻辑,而不是增加逻辑,调用此接口会覆盖之前设置的全部标签
    • 参数说明:
      • tags:
        • 不能设置 nil 或者空集合([NSSet set])
        • 集合成员类型要求为 NSString 类型
        • 每次调用至少设置一个 tag
        • 有效的标签组成:字母(区分大小写)、数字、下划线、汉字、特殊字符@!#$&*+=.|
        • 限制:每个 tag 命名长度限制为 40 字节,最多支持设置 1000 个 tag,但总长度不得超过 5 K 字节。(判断长度需采用 UTF-8 编码)
        • 单个设备最多支持设置 1000 个 tag。App 全局 tag 数量无限制单个设备最多支持设置 1000 个 tag。App 全局 tag 数量无限制
      • seq:
        • 请求时传入的序列号,会在回调时原样返回
    • callback:
      • 用于回调返回对应的参数 tags。并返回对应的状态码:0 为成功,其他返回码请参考错误码定义。seq 为调用时传入的会话序列号
    this.$app.JPushInterface.setTags(["1","2"], 0, (code, tags, seq)=>{})    
  • JPushInterface.validateTag(tag: string, seq: number, callback: (code: number, tags: [string], seq: number, isVaild:boolean)=>void)
    • 接口说明:
      • 调用此 API 来验证目标 tag 是否已经设置
    • 参数说明:
      • tag
        • 不能设置 nil 或者空字符串
        • 有效的标签组成:字母(区分大小写)、数字、下划线、汉字、特殊字符@!#$&*+=.|
        • 每个 tag 命名长度限制为 40 字节
      • seq:
        • 请求时传入的序列号,会在回调时原样返回
    • callback:
      • 用于回调返回对应的参数 tags。并返回对应的状态码:0 为成功,其他返回码请参考错误码定义。seq 为调用时传入的会话序列号。isVaild为查询的tag是否已经绑定
    this.$app.JPushInterface.validateTag("1", 0 , (code, tags, seq, isVaild)=>{})    
  • JPushInterface.deleteTags(tags: [string], seq: number, callback: (code: number, tags: [string], seq: number)=>void)
    • 接口说明:
      • 调用此 API 来删除标签,在 block 中返回结果
    • 参数说明:
      • tags
        • 不能设置 nil 或者空集合([NSSet set])
        • 集合成员类型要求为 NSString 类型
        • 每次调用至少设置一个 tag
        • 有效的标签组成:字母(区分大小写)、数字、下划线、汉字、特殊字符@!#$&*+=.|
        • 限制:每个 tag 命名长度限制为 40 字节,最多支持设置 1000 个 tag,但总长度不得超过 5 K 字节。(判断长度需采用 UTF-8 编码)
      • seq:
        • 请求时传入的序列号,会在回调时原样返回
    • callback:
      • 用于回调返回对应的参数 tags。并返回对应的状态码:0 为成功,其他返回码请参考错误码定义。seq 为调用时传入的会话序列号
    this.$app.JPushInterface.deleteTags(["1","2"], 0, (code, tags, seq)=>{})    
  • JPushInterface.cleanTags(seq: number, callback: (code: number, tags: [string], seq: number)=>void)
    • 接口说明:
      • 调用此 API 来删除标签,在 block 中返回结果
    • 参数说明:
      • seq:
        • 请求时传入的序列号,会在回调时原样返回
    • callback: +返回对应的状态码:0 为成功,其他返回码请参考错误码定义。seq 为调用时传入的会话序列号 ,tags无意义
    this.$app.JPushInterface.cleanTags(0, (code, tags, seq)=>{})    
  • JPushInterface.getAllTags(seq: number, callback: (code: number, tags: [string], seq: number)=>void)
    • 接口说明:
      • 调用此 API 来获取全部标签
    • 参数说明:
      • seq:
        • 请求时传入的序列号,会在回调时原样返回
    • callback: +返回对应的状态码:0 为成功,其他返回码请参考错误码定义。seq 为调用时传入的会话序列号 ,tags为当前设置的全部标签
    this.$app.JPushInterface.getAllTags(0, (code, tags, seq)=>{})    
  • JPushInterface.setAlias(alias: string, seq: number, callback: (code: number, alias: string, seq: number)=>void)
    • 接口说明:
      • 调用此 API 来设置alias
    • 参数说明:
      • alias
        • 不能设置 nil 或者空字符串
        • 有效的标签组成:字母(区分大小写)、数字、下划线、汉字、特殊字符@!#$&*+=.|
        • 每个 alias 命名长度限制为 40 字节
      • seq:
        • 请求时传入的序列号,会在回调时原样返回
    • callback:
      • 用于回调返回对应的参数 alias。并返回对应的状态码:0 为成功,其他返回码请参考错误码定义。seq 为调用时传入的会话序列号。
    this.$app.JPushInterface.setAlias("1", 0, (code, alias, seq)=>{})    
  • JPushInterface.deleteAlias(seq: number, callback: (code: number, alias: string, seq: number)=>void)
    • 接口说明:
      • 调用此 API 来删除alias
    • 参数说明:
      • seq:
        • 请求时传入的序列号,会在回调时原样返回
    • callback:
      • 返回对应的状态码:0 为成功,其他返回码请参考错误码定义。seq 为调用时传入的会话序列号。alias无意义
    this.$app.JPushInterface.deleteAlias(0, (code, alias, seq)=>{})    
  • JPushInterface.getAlias(seq: number, callback: (code: number, alias: string, seq: number)=>void)
    • 接口说明:
      • 调用此 API 来获取alias
    • 参数说明:
      • seq:
        • 请求时传入的序列号,会在回调时原样返回
    • callback:
      • 返回对应的状态码:0 为成功,其他返回码请参考错误码定义。seq 为调用时传入的会话序列号。alias为当前alias
    this.$app.JPushInterface.getAlias(0, (code, alias, seq)=>{})    

停止与恢复推送服务

  • JPushInterface.stopPush()
    • 接口说明:
      • 停止推送服务。
        调用了本 API 后,JPush 推送服务完全被停止。具体表现为:
        • 收不到推送消息
        • 极光推送所有的其他 API 调用都无效,不能通过 JPushInterface.init 恢复,需要调用 resumePush 恢复。
    this.$app.JPushInterface.stopPush()
  • JPushInterface.resumePush()
    • 接口说明:
      • 恢复推送服务。
        调用了此 API 后,极光推送完全恢复正常工作。
    this.$app.JPushInterface.resumePush()
  • JPushInterface.isPushStopped()
    • 接口说明:
      • 用来检查 Push Service 是否已经被停止。通过返回值返回
this.$app.JPushInterface.isPushStopped().then((isStoped)=>{
})

设置手机号

  • JPushInterface.setMobile(mobile: string, callback: (code: number, msg: string)=>void)
    • 接口说明:
      • 调用此 API 设置手机号码。
    • 参数说明:
      • mobile: 手机号码。只能以 “+” 或者数字开头,后面的内容只能包含 “-” 和数字,并且长度不能超过 20。如果传 nil 或空串则为解除号码绑定操作
    • callback:
      • 返回对应的状态码:0 为成功,其他返回码请参考错误码定义。
    this.$app.JPushInterface.setMobile("11100002222", (code, msg)=>{})    

通知点击统计

  • JPushInterface.notificationReceive(query, callback: (param) => void)

    • 接口说明:

      • 由于快应用没有专门的推送点击处理接口,所以我们需要在能够被推送点击到的页面增加点击上报代码。在对应的页面的onInit和onRefresh接口中添加该接口调用。
    • 参数说明:

      • query: 打开页面时携带的参数, 内部含有极光消息id
      • callback: 通知中的extra回调
    onInit(query) {
        this.$app.JPushInterface.notificationReceive(query, (param) =>{

        })    
    },
    onRefresh(query) {
        this.$app.JPushInterface.notificationReceive(query, (param) =>{

        })    
    }

    param为JPush透传参数

自定义消息点击统计

  • JPushInterface.customNotificationReceive(msgid: string)

    • 接口说明:

      • 开发者调用该接口上报自定义通知消息
    • 参数说明:

      • msgid: 极光消息id
    this.$app.JPushInterface.customNotificationReceive(msgid)

获取当前连接状态

  • JPushInterface.getConnectionState()
    • 接口说明:
      • 获取当前连接状态, 返回值布尔类型
    var state = this.$app.JPushInterface.getConnectionState()    

设置允许推送时间

  • JPushInterface.setPushTime(weekDays: Set, startHour: number, endHour: number)
    • 接口说明:
      • 默认情况下用户在任何时间都允许推送。即任何时候有推送下来,客户端都会收到,并展示。开发者可以调用此 API 来设置允许推送的时间。如果不在该时间段内收到消息,SDK 的处理是:推送到的通知会被扔掉。这是一个纯粹客户端的实现,所以与客户端时间是否准确、时区等这些,都没有关系。 而且该接口仅对通知有效,自定义消息不受影响。
    • 参数说明:
      • Set days 0 表示星期天,1 表示星期一,以此类推。 ( 7 天制,Set 集合里面的 int 范围为 0 到 6 )
      • set 的值为 null,则任何时间都可以收到通知,set 的 size 为 0,则表示任何时间都收不到通知。
      • startHour 允许推送的开始时间 ( 24 小时制:startHour 的范围为 0 到 23 )
      • endHour 允许推送的结束时间 ( 24 小时制:endHour 的范围为 0 到 23 )
   var weekDays = new Set([0])
    this.$app.JPushInterface.setPushTime(weekDays, 0, 12)    

客户端错误码定义

Code 描述 详细解释
6001 无效的设置,tag/alias 不应参数都为 null
6002 tags/alias 超时 接口调用超过20s没响应
6003 alias 字符串不合法 有效的别名、标签组成:字母(区分大小写)、数字、下划线、汉字
6004 alias超长。最多 40个字节 中文 UTF-8 是 3 个字节
6005 某一个 tag 字符串不合法 有效的别名、标签组成:字母(区分大小写)、数字、下划线、汉字
6006 某一个 tag 超长。一个 tag 最多 40个字节 中文 UTF-8 是 3 个字节
6007 tags 数量超出限制。最多 1000个 这是一台设备的限制。一个应用全局的标签数量无限制。
6008 tag 超出总长度限制 总长度最多 5K 字节
6009 未知错误 SDK发生了意料之外的异常
6011 10s内设置tag或alias大于10次 短时间内操作过于频繁
6014 请求繁忙 请求频率太高,本次请求失败,请重新发起请求
6015 黑名单 用户被拉入黑名单
6016 该用户无效 失效用户请求失败
6017 该请求无效 本次请求出现异常参数,请求无效
6018 Tags过多 该用户tags已设置超过1000个,不能在设置
6019 获取Tags失败 在获取全部tags时发生异常
6020 请求失败 发生了特殊问题导致请求失败
6021 tags操作正在进行中 上一次的tags请求还在等待响应,暂时不能执行下一次请求
6022 alias操作正在进行中 上一次的alias请求还在等待响应,暂时不能执行下一次请求

Copyright 2011-2020, jiguang.cn, All Rights Reserved.
粤ICP备12056275号-13 深圳市和讯华谷信息技术有限公司

Documentation built with MkDocs.