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 为该厂商不支持推送
- callback:
- 接口说明:
this.$app.JPushInterface.registerQuickPush((code, msg)=>{})
this.$app.JPushInterface.registerQuickPush((code, msg)=>{})
此代码块在浮窗中显示
极光推送
- JPushInterface.subscribeJPushNotify(callback: (title:string, content: string, url: string)=>void)
- 接口说明:
- 订阅极光推送;当应用处于前台时收到设置了前台不展示的极光推送(非厂商推送),推送将不会以通知的形式展示到通知栏,而是通难过这个回调接口将通知回调给客户端。
- 参数说明:
- callback:
- 标题,内容,跳转链接
- 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 对自定义消息,只是传递,不会有任何界面上的展示。
- 通过该接口接受自定义消息 Push。
- 参数说明:
- callback:
- 标题,内容,消息 id,透传对象
- callback:
- 接口说明:
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 为调用时传入的会话序列号
- callback:
- 接口说明:
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:这个接口是覆盖逻辑,而不是增加逻辑,调用此接口会覆盖之前设置的全部标签
- 调用此 API 来设置标签,在 block 中返回结果
- 参数说明: + 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 为调用时传入的会话序列号
- callback:
- 接口说明:
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 是否已经绑定
- callback:
- 接口说明:
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 为调用时传入的会话序列号
- callback:
- 接口说明:
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 为调用时传入的会话序列号。
- callback:
- 接口说明:
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 无意义
- callback:
- 接口说明:
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
- callback:
- 接口说明:
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 为成功,其他返回码请参考错误码定义。
- callback:
- 接口说明:
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请求还在等待响应,暂时不能执行下一次请求 |
文档内容是否对您有帮助?