支持5大厂商通道的MobPush cordova插件

MobPush cordova / cordova-plugin-mobpush

  • 插件源码地址
  • Mob 官方文档
  • 支持5大Android厂商通道(小米、华为、魅族、OPPO、VIVO)
  • 支持FCM(此插件暂未配置FCM,若需要请自行参照Mob官方文档修改gradle)

Android推送,优先走厂商通道,若不满足走厂商通道的则走MobPush的长连接。
走厂商通道,在app被杀死的情况下也能收到推送;走MobPush的长连接,则只有app未被杀死的情况下才能收到推送。


安装

在线安装

cordova plugin add https://github.com/hhjjj1010/cordova-plugin-mobpush.git --variable APP_KEY=your mobpush appkey --variable APP_SECRET=your mobpush appSecret

本地安装

下载插件到本地

cordova plugin add /your/local/path --variable APP_KEY=your mobpush appkey --variable APP_SECRET=your mobpush appSecret

Android 使用说明(必须)

执行 cordova plugin add 命令添加插件之后,还有两个步骤是必须要做的。

第一步,修改此插件目录下的src/android/mobpush.gradle文件,配置相关appkey之类的信息。厂商通道的配置为选配,若不需要就无需配置。

apply plugin: 'com.mob.sdk'

// 在MobSDK的扩展中注册MobPush的相关信息
MobSDK {
appKey "替换为mob官方申请的appkey"
appSecret "替换为mob官方申请的appkey对应的appSecret"

MobPush {

    //设置角标开关(不需要可不设置)
    badge true
    //集成其他推送通道(可?。?    devInfo {
        //华为推送配置信息
        HUAWEI {
            appId "华为的appid"
        }

        //魅族推送配置信息
        MEIZU {
            appId "魅族的appid"
            appKey "魅族的appkey"
        }

        //小米推送配置信息
        XIAOMI {
            appId "小米的appid"
            appKey "小米的appkey"
        }
        //FCM推送通道配置
        FCM {
            //设置默认推送通知显示图标
            iconRes "@mipmap/ic_launcher"
        }

       //OPPO推送配置信息
        OPPO {
            appKey "OPPO的appKey"
            appSecret "OPPO的appSecret"
        }

        //VIVO推送配置信息
        VIVO {
           appId "应用对应的vivo appID"
           appKey "应用对应的vivo appKey"
        }
    }
}

第二步,执行cordova build android 命令之后,使用android studio打开platforms/android文件夹,在 build.gradle(Moudle:app) 文件的 dependencies 添加 classpath 'com.mob.sdk:MobSDK。

apply plugin: 'com.android.application'

buildscript {
    repositories {
        mavenCentral()
        maven {
            url "https://maven.google.com"
        }
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        classpath 'com.mob.sdk:MobSDK:+' // MobSDK
    }
}

使用

API

初始化、停止与恢复推送服务

initPush

初始化推送服务此方法无任何实质作用,只会在控制台打印输出+--- MobPush initPush ----+。

代码示例:

window.MobPush.initPush();

isPushStopped

检查推送服务是否停止。

代码示例:

window.MobPush.isPushStopped(function(bool) {

});

stopPush

停止推送服务。

代码示例:

window.MobPush.stopPush();

restartPush

重启推送服务。

代码示例:

window.MobPush. restartPush();

设置别名与标签

setAlias

设置别名,覆盖操作。

代码示例:

window.MobPush.setAlias(function() {
  // 设置别名成功
}, function() {
  // 设置别名失败 
});

getAlias

获取别名。

代码示例:

window.MobPush.getAlias(function(alias) {
  // 获取别名成功
}, function() {
  // 获取别名失败 
});

deleteAlias

删除别名。

代码示例:

window.MobPush.deleteAlias(function() {
  // 删除别名成功
}, function() {
  // 删除别名失败 
});

addTags

添加标签,增量操作。

代码示例:

let tags = ['tag1', 'tag2'];
window.MobPush.addTags(tags, function() {
  // 添加标签成功
}, function() {
  // 添加标签失败 
});

getTags

获取标签。

代码示例:

window.MobPush.getTags(function(tags) {
  // 获取标签成功,返回标签数组
}, function() {
  // 删除别名失败 
});

deleteTags

删除标签。

代码示例:

let tags = ['tag1', 'tag2']
window.MobPush.deleteTags(tags, function() {
  // 删除标签成功
}, function() {
  // 删除标签失败 
});

cleanAllTags

清除所有的标签。

代码示例:

window.MobPush. cleanAllTags(function() {
  // 清除所有的标签成功
}, function() {
  // 清除所有的标签失败 
});

获取点击通知内容

event-mobpush.openedNotificationMessage

点击通知进入应用程序时触发。

代码示例:
在你需要接收通知点击事件的 js 文件中加入一下代码(Ps:ionic1通常是加在app.js的run方法里面)。

/** 点击了推送消息 */
document.addEventListener("mobpush.openedNotificationMessage", function (event) {
  // alert(angular.toJson(event));

  let url, messageId; // 此处的 url 和 messageId 为附加字段示例

  if (ionic.Platform.isIOS()) {
    url = event.url;
    messageId = event.messageId;
  } else if (ionic.Platform.isAndroid()) {
    url = event.extras.url;
    messageId = event.extras.messageId;
  }
});

获取通知内容

event-mobpush.receivedNotificationMessage

收到通知时触发。

代码示例:
在你需要接收通知事件的 js 文件中加入一下代码(Ps:ionic1通常是加在app.js的run方法里面)。

 /** 收到推送消息 */
document.addEventListener("mobpush.receivedNotificationMessage", function (event) {

});

获取自定义消息内容

event-mobpush.receivedLocalMessage

收到本地推送时触发。

代码示例:
在你需要接收自定义消息事件的 js 文件中加入一下代码(Ps:ionic1通常是加在app.js的run方法里面)。

/** 收到自定义消息 */
document.addEventListener("mobpush.receivedLocalMessage", function (event) {

});

绑定手机号码

bindPhoneNumber

绑定手机号码后,可以在推送无法到达的时候,发送手机短信通知用户。

代码示例:

let mobile = "13000000000";
window.MobPush. bindPhoneNumber(mobile, function() {
  // 绑定手机号码成功
}, function() {
  // 绑定手机号码失败
});

添加本地通知

addLocalNotification

添加本地通知。

代码示例:

let noti = {
  title: "noti title",
  body: "noti content",
  sound: true
};

window.MobPush. addLocalNotification(noti, function() {
  // 添加本地通知成功
}, function() {
  // 添加本地通知失败
});

Badge (iOS Only)

setBadge

设置角标数字。

代码示例:

window.MobPush.setBadge(1);

clearBadge

清除角标数字。

代码示例:

window.MobPush. clearBadge();

setApplicationIconBadgeNumber

设置角标数字。

代码示例:

window.MobPush. setApplicationIconBadgeNumber(1);

getApplicationIconBadgeNumber

获取角标数字。

代码示例:

window.MobPush.getApplicationIconBadgeNumber(function(num) {

});

Tips

  1. MobPush后台配置iOS时一定要配置推送证书。
  2. OPPO开发者账号个人账号目前不能上架APP。
  3. VIVO开发者账号目前不支持个人账号。
  4. OPPO和VIVO的厂商通道目前是有限制的,具体请查看Mob官方文档或各平台文档。
  5. 华为厂商通道需将app打包为release才能测试,且EMUI 5以上的手机才支持厂商通道。
最后编辑于
?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351