huaweiPush

来自于:官方立即使用

init getToken deleteToken getState setPassByMsg pushListener eventListener

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码供您参考。

概述

huaweiPush模块封装了华为消息推送的SDK,使用此模块可实现接收推送通知和透传消息功能。

开发者使用本模块之前需要先到华为开发者联盟查看接入说明,说明去注册账号,申请应用,添加推送服务

注意:

添加服务时,要注意填写的是SHA256证书指纹,而不是SHA1,需要android开发人员通过命令行或者其他方法获取,且要点击保存证书

模块使用攻略

  • 配置示例:
  1. <meta-data
  2. name="com.huawei.hms.client.appid"
  3. value="100006945" />

value是在添加推送服务后得到的App ID

  • intent配置

华为推送对通知的点击有两种后续行为:1、直接打开应用 2、自定义动作;现对自定义动作做如下说明:

(1) 自定义动作需要在config.xml文件中配置intent-filter,示例代码如下:

  1. <intent-filter>
  2. <action name="android.intent.action.VIEW"/>
  3. <category name="android.intent.category.DEFAULT"/>
  4. <data host="com.apicloud.push"
  5. path="/hwpush_detail"
  6. scheme="apischeme"/>
  7. </intent-filter>

(2) 完成第一步的操作后,在华为推送后台需要填写一个自定义动作的字符串,格式如下:

  1. intent://{host}/{path}?message=what#Intent;scheme={scheme};launchFlags=0x30000000;end

其中:

  • host 就是第一步配置的intent-filter中的host
  • path 就是第一步配置的intent-filter中的path
  • scheme 就是第一步配置的intent-filter中的scheme
  • message=what 这部分就是自定义的内容了

示例代码

  1. intent://com.apicloud.push/hwpush_detail?message={name:'tim', age:'20'}#Intent;scheme= apischeme;launchFlags=0x30000000;end

(3) 到此配置完成,当点击通知栏后开发者可以监听appintent事件来获取数据

模块接口

init

初始化推送服务

init(callback(ret,err))

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: //布尔类型;是否成功
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码
  3. }

示例代码

  1. var huaweiPush = api.require('huaweiPush');
  2. huaweiPush.init(function(ret, err) {
  3. if (ret.status) {
  4. api.alert({ msg: "初始化成功" });
  5. } else {
  6. api.alert({ msg: "初始化失败" });
  7. }
  8. });

可用性

Android系统

可提供的1.0.2及更高版本

getToken

获取token

getToken(callback(ret,err))

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: //布尔类型;是否成功;
  3. token: //字符串类型;status为true时有值
  4. belongId: //字符串类型;status为true时有值
  5. }

示例代码

  1. var huaweiPush = api.require('huaweiPush');
  2. huaweiPush.getToken(function(ret, err) {
  3. if (ret.status) {
  4. api.alert({ msg: "获取token成功" });
  5. } else {
  6. api.alert({ msg: "获取token失败" });
  7. }
  8. });

可用性

Android系统

可提供的1.0.2及更高版本

deleteToken

删除token

deleteToken({parmas},callback(ret,err))

params

token:

  • 类型:字符串
  • 描述:要删除的token

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: //布尔类型;是否成功;
  3. }

示例代码

  1. var huaweiPush = api.require('huaweiPush');
  2. huaweiPush.deleteToken({
  3. token : ''
  4. },function(ret, err) {
  5. if (ret.status) {
  6. api.alert({ msg: "删除token成功" });
  7. } else {
  8. api.alert({ msg: "删除token失败" });
  9. }
  10. });

可用性

Android系统

可提供的1.0.2及更高版本

getState

获取当前推送状态

getState(callback(ret,err))

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: //布尔类型;是否处于连接状态;
  3. }

示例代码

  1. var huaweiPush = api.require('huaweiPush');
  2. huaweiPush.getState(function(ret, err) {
  3. if (ret.status) {
  4. api.alert({ msg: "当前状态为连接" });
  5. } else {
  6. api.alert({ msg: "当前状态为断开" });
  7. }
  8. });

可用性

Android系统

可提供的1.0.2及更高版本

setPassByMsg

设置是否接受推送消息

setPassByMsg({parmas},callback(ret,err))

params

flag:

  • 类型:布尔类型
  • 描述:是否接受消息

示例代码

  1. var huaweiPush = api.require('huaweiPush');
  2. huaweiPush.setPassByMsg({
  3. flag : true
  4. });

可用性

Android系统

可提供的1.0.2及更高版本

pushListener

监听推送信息

pushListener(callback(ret,err))

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg: //字符串类型;接收到的消息内容;
  3. }

示例代码

  1. var huaweiPush = api.require('huaweiPush');
  2. huaweiPush.pushListener(function(ret, err) {
  3. if (ret) {
  4. api.alert({ msg: ret.msg });
  5. }
  6. });

可用性

Android系统

可提供的1.0.2及更高版本

eventListener

监听点击推送信息事件

eventListener(callback(ret,err))

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg: //字符串类型;接收到的消息内容;
  3. }

示例代码

  1. var huaweiPush = api.require('huaweiPush');
  2. huaweiPush.eventListener(function(ret, err) {
  3. if (ret) {
  4. api.alert({ msg: ret.msg });
  5. }
  6. });

可用性

Android系统

可提供的1.0.2及更高版本