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
- isPushStopped
- stopPush
- restartPush
- 设置别名与标签
- setAlias
- getAlias
- deleteAlias
- addTags
- getTags
- deleteTags
- cleanAllTags
- 获取点击通知内容
- event-mobpush.openedNotificationMessage
- 获取通知内容
- event-mobpush.receivedNotificationMessage
- 获取自定义消息内容
- event-mobpush.receivedLocalMessage
- 绑定手机号码
- bindPhoneNumber
- 添加本地通知
- addLocalNotification
- Badge
- setBadge
- clearBadge
- setApplicationIconBadgeNumber
- getApplicationIconBadgeNumber
初始化、停止与恢复推送服务
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
- MobPush后台配置iOS时一定要配置推送证书。
- OPPO开发者账号个人账号目前不能上架APP。
- VIVO开发者账号目前不支持个人账号。
- OPPO和VIVO的厂商通道目前是有限制的,具体请查看Mob官方文档或各平台文档。
- 华为厂商通道需将app打包为release才能测试,且EMUI 5以上的手机才支持厂商通道。