SDK API 指南
最近更新:2021-12-15
展开全部

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");
              this.JPushInterface=JPushInterface.init(this,"官网中创建应用后分配的appkey","自定义channel");

        
此代码块在浮窗中显示
  • JPushInterface.setDebugMode(enable:boolean)
    • 接口说明:
      • 设置是否开启 debug 模式。true 则会打印更多的日志信息。设置 false 则会关闭 sdk 的所有日志打印,建议在 init 接口之前调用。
    • 参数说明:
      • enable:debug 开关
    • 调用示例:
JPushInterface.setDebugMode(true);
              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)=>{})
              this.$app.JPushInterface.registrationID((code, regID)=>{})

        
此代码块在浮窗中显示

厂商推送

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

        
此代码块在浮窗中显示

极光推送

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

        
此代码块在浮窗中显示

停止与恢复推送服务

  • JPushInterface.stopPush()
    • 接口说明:
      • 停止推送服务。
        调用了本 API 后,JPush 推送服务完全被停止。具体表现为: + 收不到推送消息 + 极光推送所有的其他 API 调用都无效,不能通过 JPushInterface.init 恢复,需要调用 resumePush 恢复。
this.$app.JPushInterface.stopPush()
              this.$app.JPushInterface.stopPush()

        
此代码块在浮窗中显示
  • JPushInterface.resumePush()
    • 接口说明:
      • 恢复推送服务。
        调用了此 API 后,极光推送完全恢复正常工作。
this.$app.JPushInterface.resumePush()
              this.$app.JPushInterface.resumePush()

        
此代码块在浮窗中显示
  • JPushInterface.isPushStopped()
    • 接口说明:
      • 用来检查 Push Service 是否已经被停止。通过返回值返回
this.$app.JPushInterface.isPushStopped().then((isStoped)=>{ })
          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)=>{})
              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透传参数
              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)
              this.$app.JPushInterface.customNotificationReceive(msgid)

        
此代码块在浮窗中显示

获取当前连接状态

  • JPushInterface.getConnectionState()
    • 接口说明:
      • 获取当前连接状态, 返回值布尔类型
var state = this.$app.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)
             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-2022, jiguang.cn, All Rights Reserved. 粤ICP备12056275号-13 深圳市和讯华谷信息技术有限公司

在文档中心打开