为了规范通知栏消息,提升用户体验,2023年5月19日起,快应用推送消息将全面升级。
服务升级期间,快应用推送能力整体下线,即快应用的推送/通知(即通知栏消息)均无法触达用户,请您暂停使用,给您造成的不便敬请谅解。
本次服务升级预计于2023年四季度完成,完成后我们将会邮件通知您。如您遇到任何问题,请发邮件至developer@huawei.com与我们联系,感谢您的支持。
该功能依赖 Push SDK 提供服务,Push SDK 可能会收集用户的个人数据。请在快应用中使用该功能之前,告知用户将搜集个人数据,并引导用户阅读相应的隐私政策。
在调用接口页面的<script>部分增加如下配置。
import push from '@service.push'
或
var push = require("@service.push") 接口 | 描述 |
|---|---|
获取服务提供商。 | |
订阅push,后续可以收到push消息。 | |
取消订阅。 | |
添加push事件回调。 | |
移除push事件回调,push.on中的callback不会再收到透传内容。 | |
调起订阅消息界面,返回用户订阅消息的操作结果。 |
描述
获取服务提供商。
返回值
字符串,服务提供商的代号,如厂商的英文品牌名称,如果无此服务则返回空字符串。返回空字符串时,请勿调用该服务其他接口,否则将抛出异常。
请务必使用华为快应用加载器调试,使用快应用联盟调试器则始终返回空字符串。
示例代码
push.getProvider();
描述
订阅push,后续可以收到push消息(一般可在应用初始化的地方进行调用。比如在app的onCreate方法中调用)。
OBJECT参数
参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
success | function | 否 | 成功回调,返回 regId,用于发送消息。 |
fail | function | 否 | 失败回调,返回失败原因。 |
complete | function | 否 | 执行结束后的回调。 |
示例代码
push.subscribe({
success: function(data) {
console.log("push.subscribe succeeded, result data=" + JSON.stringify(data));
},
fail: function(data, code) {
console.log("push.subscribe failed, result data=" + JSON.stringify(data) + ", code=" + code);
},
complete: function() {
console.log("push.subscribe completed");
}
}); 描述
取消订阅(一般不建议调用,调用后regId将失效,需要重新订阅获取新的regId)。如果确定不需要再接受消息推送时,请开发者在RPK中调用unsubscribe后,上报自己的业务服务器此regId已经注销,开发者业务服务器推送消息时,排除已注销regId消息的推送。
如果开发者发送大量PUSH消息到无效的regId,将会受到相应的处罚,包括但不限于限速、禁用等。
OBJECT参数
参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
success | function | 否 | 成功回调。 |
fail | function | 否 | 失败回调,返回失败原因。 |
complete | function | 否 | 执行结束后的回调。 |
示例代码
push.unsubscribe({
success: function(data) {
console.log("push.unsubscribe succeeded, result data=" + JSON.stringify(data));
},
fail: function(data, code) {
console.log("push.unsubscribe failed, result data=" + JSON.stringify(data) + ", code=" + code);
},
complete: function() {
console.log("push.unsubscribe completed");
}
}); 描述
添加push事件回调(透传消息的payload内容可在此回调中收到)。
OBJECT参数
参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
callback | function | 是 | push事件回调处理。 |
callback返回值:
参数 | 类型 | 说明 |
|---|---|---|
messageId | string | 消息id。 |
data | string | 消息内容payload。 |
示例代码
push.on({
callback: function(ret) {
console.log("received pass through message, ret=" + JSON.stringify(ret));
}
}); 描述
调起订阅消息界面,返回用户订阅消息的操作结果。
OBJECT参数
参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
templateIdList | Array | 是 | 消息模板id数组,最大不超过3条。重复id会被丢弃。 |
success | function | 否 | 成功回调。 |
fail | function | 否 | 失败回调,返回失败原因。 |
complete | function | 否 | 执行结束后的回调。 |
success返回值
若用户勾选了“总是保持以上选择,不再询问”后,当您再次使用完全相同的templateIdList调用该接口时,将不会弹窗让用户确认,会直接返回上次用户的订阅结果。
参数 | 类型 | 说明 |
|---|---|---|
result | object | 返回用户订阅结果。
示例1: {"100001":"acceptOnce", "100002":"rejectOnce", "200001":"invalid"} 示例2: {"100001":"acceptAlways", "100002":"rejectAlways", "200001":"invalid"} |
fail错误码
错误码 | 值 | 说明 |
|---|---|---|
COMMON_ERROR | 200 | 框架通用错误。 |
NOT_SUPPORT_SERVICE_COUNTRY | 205 | 服务地不支持。 |
SERVICE_UNAVIALABLE | 203 | rpk在push禁用名单内。 |
PARAMETER_ERROR | 202 | 参数不合法,templateIdList为空或者去重后超过3条。 |
USER_REJECT | 201 | 订阅弹框点击关闭。 |
QUICKAPP_IN_BACKGROUND | 500 | 快应用退到后台,导致无法展示订阅弹框。 |
示例代码
push.requestSubscribeMessage({
templateIdList: ['example_100001', 'example_100002'],
success: function (data) {
console.log('push.requestSubscribeMessage succeeded, result data=' + JSON.stringify(data))
prompt.showToast({
message: `subscribe success: ${JSON.stringify(data)}`
})
},
fail: function (data, code) {
console.log('push.requestSubscribeMessage failed, result data=' + JSON.stringify(data) + ', code=' + code)
prompt.showToast({
message: `subscribe fail msg: ${data}, code: ${code}`
})
},
complete: function () {
console.log('push.requestSubscribeMessage completed')
}
})