huaweiPush

来自于:官方立即使用

论坛示例

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

概述

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

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

注意:

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

模块使用攻略

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

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

  • intent配置

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

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

<intent-filter>
    <action name="android.intent.action.VIEW"/>
    <category name="android.intent.category.DEFAULT"/>
    <data host="com.apicloud.push"
        path="/hwpush_detail"
        scheme="apischeme"/>
</intent-filter>

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

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 这部分就是自定义的内容了

示例代码

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 对象
  • 内部字段:
{
       status:             //布尔类型;是否成功
}

err:

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

示例代码

var huaweiPush = api.require('huaweiPush');
huaweiPush.init(function(ret, err) {
    if (ret.status) {
        api.alert({ msg: "初始化成功" });
    } else {
        api.alert({ msg: "初始化失败" });
    }
});

可用性

Android系统

可提供的1.0.2及更高版本

getToken

获取token

getToken(callback(ret,err))

callback(ret,err)

ret:

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

示例代码

var huaweiPush = api.require('huaweiPush');
huaweiPush.getToken(function(ret, err) {
    if (ret.status) {
        api.alert({ msg: "获取token成功" });
    } else {
        api.alert({ msg: "获取token失败" });
    }
});

可用性

Android系统

可提供的1.0.2及更高版本

deleteToken

删除token

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

params

token:

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

callback(ret,err)

ret:

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

示例代码

var huaweiPush = api.require('huaweiPush');
huaweiPush.deleteToken({
        token : ''
    },function(ret, err) {
        if (ret.status) {
            api.alert({ msg: "删除token成功" });
        } else {
            api.alert({ msg: "删除token失败" });
        }
});

可用性

Android系统

可提供的1.0.2及更高版本

getState

获取当前推送状态

getState(callback(ret,err))

callback(ret,err)

ret:

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

示例代码

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

可用性

Android系统

可提供的1.0.2及更高版本

setPassByMsg

设置是否接受推送消息

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

params

flag:

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

示例代码

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

可用性

Android系统

可提供的1.0.2及更高版本

pushListener

监听推送信息

pushListener(callback(ret,err))

callback(ret,err)

ret:

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

示例代码

var huaweiPush = api.require('huaweiPush');
huaweiPush.pushListener(function(ret, err) {
    if (ret) {
        api.alert({ msg: ret.msg });
    }
});

可用性

Android系统

可提供的1.0.2及更高版本

eventListener

监听点击推送信息事件

eventListener(callback(ret,err))

callback(ret,err)

ret:

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

示例代码

var huaweiPush = api.require('huaweiPush');
huaweiPush.eventListener(function(ret, err) {
    if (ret) {
        api.alert({ msg: ret.msg });
    }
});

可用性

Android系统

可提供的1.0.2及更高版本