返回插件列表

MPush

Android整合推送插件,其中包含了华为、小米、OPPO、VIVO、魅族推送;
iOS集成苹果推送。

注意事项

  1. iOS注意事项:如果项目中有用到融云聊天插件,请将融云聊天插件更新到最新版本,否则可能无法正常使用推送服务。

  2. 首先在各个推送平台上注册应用,然后获取所需参数。开放平台地址及插件所需参数如下:

    平台 地址 需要填写的参数
    小米 https://dev.mi.com/console/appservice/push.html XIAOMI_APP_ID、XIAOMI_APP_KEY
    OPPO https://push.oppo.com/ OPPO_APP_KEY、OPPO_APP_SECRET
    VIVO https://dev.vivo.com.cn/openAbility/pushNews VIVO_APP_ID、VIVO_APP_KEY
    魅族 http://push.meizu.com/ MEIZU_APP_ID、MEIZU_APP_KEY
  3. 申请华为推送服务时需要SHA256证书指纹,因APPCloud平台提供了默认的打包证书,所以可使用以下指纹。

  4. MIUI上的小米推送,受通知过滤的影响。如需用户感知所有通知,请参考MIUI通知过滤的开发者说明

  5. VIVO手机安装APP后通知默认处于关闭状态,需要用户手动开启,开启步骤可参考VIVO通知开启步骤

  6. 如果要注册通知监听,则必须在程序启动时deviceready事件中进行注册。

  7. 适配small icon,格式和样式要求:(small icon制作好后,存放到 www/push 目录,文件名为 small_icon.png)

    官方示例如下: small icon example

  8. 集成华为推送须知,从1.2.4版本开始,华为推送升级为官方的v2版本,配置方式较1.2.4之前的版本有所不同,详情点击查看

API

目录

  1. 获取绑定信息
  2. 注册通知监听
  3. 清除通知栏通知
  4. 设置角标
  5. 华为集成方式

获取绑定信息

PushNotification.getBindInfo(success, fail)
参数 类型 说明
succes(bindInfo) function 成功回调,bindInfo格式见下表
fail(error) function 失败回调,格式为:{'errCode':-1,'errMsg':''}

华为参考文档小米参考文档魅族参考文档VIVO参考文档OPPO参考文档

bindInfo格式
参数 类型 说明
applicationId string 应用ID
manufacturer string 厂商名称,如xiaomimeizuapple
pushChannel string 推送通道信息,格式为{通道名: deviceToken}

注意(Android):如果未设置某个厂商的推送配置,将统一使用小米通道。例如MEIZU_APP_IDMEIZU_APP_KEY未配置,那么getBindInfo将返回{applicationId: "...", deviceToken: "...", manufacturer: "meizu", pushChannel: {"xiaomi":deviceToken}}

// 示例
PushNotification.getBindInfo(
    function success(result) {
        console.log("success", result);
    },
    function fail(error) {
        console.log("error", error);
    }
);

注册通知监听

PushNotification.addEventListener(callback)
参数 类型 说明
callback object 通知状态回调,目前仅包含onTouchedonError回调,具体释义如下
  1. onTouched(data):通知中心点击通知,会启动或者激活app,一般业务逻辑处理在这里处理即可,如页面跳转。data为后台推送时传递的参数。
  2. onReceived(data):app在前台时,收到推送消息会走此回调,仅支持iOS
  3. onPassThrough(data):app在前台时,收到透传消息会走此回调,仅支持Android&小米通道
  4. onError(error):注册通知监听失败。error为具体错误内容
// 示例
PushNotification.addEventListener({
    onTouched: function(data) {
        console.log("onTouched", data);
    },
    onReceived: function(data) {
        console.log("onReceived", data);
    },
    onPassThrough: function(data) {
        console.log("onPassThrough", data);
    },
    onError: function(error) {
        console.log("onError", error);
    }
});

自定义铃声通知

注意事项
  1. 自定义铃声支持 mp3,wav

  2. iOS 自定义铃声文件需预下载至指定目录下 cordova.file.applicationStorageDirectory + 'Library/Sounds/';

  3. Android 自定义铃声文件与config.json配置文件需打包时,提前放置在www/voice 目录下:

    //config.json
    [
        {
            "channelName": "mpush",
            "channelId": "mpush",
            "channelDescription": "mpush描述",
            "fileName": "mpush"
        },
        {
            "channelName": "test",
            "channelId": "test",
            "channelDescription": "test描述",
            "fileName": "test"
        }
    ]
    
  4. OPPO 小米需在厂商的开发者后台配置channel;

  5. 华为必须申请重要推送权限;

  6. Android 8 以上 OPPO 小米 华为 支持系统推送自定义铃声,不支持的机型可使用小米push;

  7. 不支持系统推送的机型可使用小米push透传,需要应用保活;

  8. 自定义铃声需用户手动开启声音设置方可使用;

  9. iOS 声音播放时长与通知横幅展示时长相关,横幅消失及播放停止。

  10. 如通知类型被归为 ‘营销通知’ 需联系厂商解除。

// ios 服务端示例
{
    "aps": {
        "content-available": 1,
        "alert": {
            "title": "Push Notification",
            "body": "Notification from APNs Provider."
        },
        "badge": 9,
        "sound": "default"//自定义铃声名称
    },
    "presentNotifiInForeground":1//该key存在,前台不展示横幅与声音;key不存在,展示横幅与声音;与value值无关
}
// xiaomi 服务端示例
{
    "pass_through": 1,// 透传类型
    "extra.channel_id": "mpush",// mpush为厂商的开发者后台配置channel
    "extra.sound_uri": "android.resource://com.mysoft.engineertool/raw/mpush", //mpush为文件名称
    "payload": "{\"fileName\":\"mpush\"}"//mpush为文件名称,使用透传时必传
}
// huawei 服务端示例
{
    "notification": {
        "sound": "raw/mpush",//mpush为文件名称
        "channel_id": "mpush",// mpush为厂商的开发者后台配置channel
        "importance": "HIGH"
    }
}
// OPPO 服务端示例
{
    "channel_id": "mpush",// mpush为厂商的开发者后台配置channel
}

清除通知栏通知

PushNotification.clearPushBadgeNumber()

设置角标

PushNotification.setPushBadgeNumber(count)

注意:仅支持iOS和华为手机

华为集成方式

  1. 进入华为控制台: https://developer.huawei.com/consumer/cn/service/josp/agc/index.html

  2. 点击我的项目 d4c5TJ.png

  3. 选择目标项目(此处以移动销售为例) d4cL6K.png

  4. 下载agconnect-services.json d4gPpt.png

  5. 将下载好的文件保存,存放到 www/push 目录,文件名为 agconnect-services.json