293 lines
10 KiB
JavaScript
293 lines
10 KiB
JavaScript
var exec = require('cordova/exec');
|
||
|
||
var TpnsPlugin = function () { };
|
||
|
||
// private plugin function
|
||
|
||
TpnsPlugin.prototype.receiveMessage = {};
|
||
TpnsPlugin.prototype.openNotification = {};
|
||
TpnsPlugin.prototype.receiveNotification = {};
|
||
|
||
TpnsPlugin.prototype.isPlatformIOS = function () {
|
||
return (
|
||
device.platform === "iPhone" ||
|
||
device.platform === "iPad" ||
|
||
device.platform === "iPod touch" ||
|
||
device.platform === "iOS"
|
||
);
|
||
};
|
||
|
||
TpnsPlugin.prototype.errorCallback = function (msg) {
|
||
console.log("TPNS Callback Error: " + msg);
|
||
};
|
||
|
||
TpnsPlugin.prototype.fireEvent = function(event,extra) {
|
||
cordova.fireDocumentEvent("tpns."+event, extra);
|
||
};
|
||
|
||
TpnsPlugin.prototype.Constant = {
|
||
EVENT_ON_TEXT_MESSAGE :'tpns.onTextMessage',
|
||
EVENT_ON_NOTIFICATION_SHOWED_RESULT :'tpns.onNotificationShowedResult',
|
||
EVENT_ON_NOTIFICATION_CLICKED_RESULT :'tpns.onNotificationClickedResult',
|
||
};
|
||
|
||
TpnsPlugin.prototype.callNative = function (
|
||
name,
|
||
args,
|
||
successCallback,
|
||
errorCallback
|
||
) {
|
||
if (this.isPlatformIOS()) {
|
||
console.log("tnps android plugin skip ios platform.");
|
||
if (successCallback) {
|
||
successCallback();
|
||
}
|
||
return;
|
||
}
|
||
if (errorCallback) {
|
||
cordova.exec(successCallback, errorCallback, "TpnsPlugin", name, args);
|
||
} else {
|
||
cordova.exec(
|
||
successCallback,
|
||
this.errorCallback,
|
||
"TpnsPlugin",
|
||
name,
|
||
args
|
||
);
|
||
}
|
||
};
|
||
/**
|
||
* 启用调试
|
||
*/
|
||
TpnsPlugin.prototype.enableDebug = function(enable) {
|
||
this.callNative("enableDebug", [enable], null);
|
||
};
|
||
/**
|
||
* 关闭联合保活能力(1.1.6.1+)
|
||
* */
|
||
TpnsPlugin.prototype.enablePullUpOtherApp = function(enable) {
|
||
this.callNative("enablePullUpOtherApp", [enable], null);
|
||
};
|
||
/**
|
||
* 获取设备 Token
|
||
*/
|
||
TpnsPlugin.prototype.getToken = function(successCallback,errorCallback){
|
||
this.callNative("getToken", [], successCallback,errorCallback);
|
||
};
|
||
/**
|
||
* 获取第三方厂商 Token
|
||
*/
|
||
TpnsPlugin.prototype.getOtherPushToken = function(successCallback,errorCallback){
|
||
this.callNative("getOtherPushToken", [], successCallback,errorCallback);
|
||
};
|
||
/**
|
||
* 注册消息推送
|
||
* @param {*} other 厂商通道? 为空时不开启 格式如下:
|
||
* {
|
||
* "MZ":{"APP_ID":魅族APP_ID,"APP_KEY":魅族APP_KEY},
|
||
* "OPPO":{"appKey":OPPO appKey,"appSecret": OPPO appSecret},
|
||
* "MI":{"APPID":小米APPID,"APPKEY":小米APPKEY},
|
||
* "HW":{},"RY":{}
|
||
* }
|
||
* @param {*} successCallback
|
||
* @param {*} errorCallback
|
||
*/
|
||
TpnsPlugin.prototype.registerPush = function(other,successCallback,errorCallback){
|
||
this.callNative("registerPush", other?[other]:[],successCallback,errorCallback);
|
||
}
|
||
/**
|
||
* 取消注册消息推送
|
||
* @param {*} successCallback
|
||
* @param {*} errorCallback
|
||
*/
|
||
TpnsPlugin.prototype.unregisterPush = function(successCallback,errorCallback){
|
||
this.callNative("unregisterPush", [],successCallback,errorCallback);
|
||
}
|
||
/**
|
||
* 添加本地消息通知
|
||
* @param {*} data 消息通知内容
|
||
* {
|
||
* channelId:通道id,channelName:通道名称,enableVibration:是否震动,enableLights:是否闪光,enableSound:是否铃声,soundUri:铃声文件地址
|
||
* }
|
||
* @param {*} successCallback
|
||
* @param {*} errorCallback
|
||
*/
|
||
TpnsPlugin.prototype.createNotificationChannel =function(data,successCallback,errorCallback){
|
||
this.callNative("createNotificationChannel", [data],successCallback,errorCallback);
|
||
}
|
||
|
||
/**
|
||
* 创建消息通道
|
||
* @param {*} data 消息通道信息
|
||
* {
|
||
* type?: 本地消息类型,1:通知,2:消息,
|
||
* title: 消息标题,
|
||
* content: 消息内容,
|
||
* date?: 消息日期,格式为:20140502,
|
||
* hour?: 消息触发的小时(24小时制),例如:22代表晚上10点,
|
||
* min? :消息触发的分钟,例如:05代表05分,
|
||
* builderId?: 消息样式,默认为0或不设置,
|
||
* actionType: 设置动作类型:1打开activity或App本身,2打开浏览器,3打开Intent ,4通过包名打开应用,
|
||
* activity?:拉起应用页面,
|
||
* url?: URL,
|
||
* intent?: intent
|
||
* styleId?: 是否覆盖原先build_id的保存设置。1覆盖,0不覆盖,
|
||
* ringRaw?: 音频资源
|
||
* data?: {} 自定义内容列表
|
||
* }
|
||
* @param {*} successCallback
|
||
* @param {*} errorCallback
|
||
*/
|
||
TpnsPlugin.prototype.addLocalNotification =function(data,successCallback,errorCallback){
|
||
this.callNative("addLocalNotification", [data],successCallback,errorCallback);
|
||
}
|
||
|
||
/**
|
||
* 清除本地消息通知
|
||
* @param {*} successCallback
|
||
* @param {*} errorCallback
|
||
*/
|
||
TpnsPlugin.prototype.clearLocalNotifications = function(successCallback,errorCallback){
|
||
this.callNative("clearLocalNotifications", [],successCallback,errorCallback);
|
||
}
|
||
/**
|
||
* 对一个或多个账号类型的账号进行解绑。(SDK 1.2.3.0+)
|
||
* @param {*} params 账户类型数组 [1001,1002]
|
||
* @param {*} successCallback
|
||
* @param {*} errorCallback
|
||
*/
|
||
TpnsPlugin.prototype.delAccounts = function(params,successCallback,errorCallback){
|
||
this.callNative("delAccounts", [params],successCallback,errorCallback);
|
||
}
|
||
/**
|
||
* 对的所有已绑定账号进行解绑
|
||
* @param {*} successCallback
|
||
* @param {*} errorCallback
|
||
*/
|
||
TpnsPlugin.prototype.clearAccounts = function(successCallback,errorCallback){
|
||
this.callNative("clearAccounts", [],successCallback,errorCallback);
|
||
}
|
||
|
||
/**
|
||
* 添加或更新账号。若原来没有该类型账号,则添加;若原来有,则覆盖。可以同时添加多个账号,一个账号对应一个账号类型。
|
||
* @param {*} params 账户数组[{"account":elva, "accountType":1001}, {"account":jay, "accountType":1002}]
|
||
* @param {*} successCallback
|
||
* @param {*} errorCallback
|
||
*/
|
||
TpnsPlugin.prototype.upsertAccounts = function(params,successCallback,errorCallback){
|
||
this.callNative("upsertAccounts", [params],successCallback,errorCallback);
|
||
}
|
||
|
||
/**
|
||
* 覆盖多个标签 一次设置多个标签,会覆盖这个设备之前设置的标签。
|
||
* @param {*} operateName 操作名称 全局唯一,类似于全局序列
|
||
* @param {*} tags 标签数组["tag1","tag2"]
|
||
* @param {*} successCallback
|
||
* @param {*} errorCallback
|
||
*/
|
||
TpnsPlugin.prototype.clearAndAppendTags = function(operateName,tags,successCallback,errorCallback){
|
||
this.callNative("clearAndAppendTags", [operateName,tags],successCallback,errorCallback);
|
||
}
|
||
|
||
/**
|
||
* 新增多个标签
|
||
* 如果新覆盖的标签都带有 : 号,例如 test:2, level:2,则会删除这个设备已绑定的所有 test:* 和 level:* 标签,再新增 test:2 和 level:2。
|
||
* 如果新增的标签有部分不带 : 号,例如 test:2 level,则会删除这个设备的全部历史标签,再新增 test:2 和 level 标签。
|
||
* @param {*} operateName 操作名称 全局唯一,类似于全局序列
|
||
* @param {*} tags 标签数组["tag1","tag2"]
|
||
* @param {*} successCallback
|
||
* @param {*} errorCallback
|
||
*/
|
||
TpnsPlugin.prototype.appendTags = function(operateName,tags,successCallback,errorCallback){
|
||
this.callNative("appendTags", [operateName,tags],successCallback,errorCallback);
|
||
}
|
||
|
||
/**
|
||
* 一次删除多个标签。
|
||
* @param {*} operateName 操作名称 全局唯一,类似于全局序列
|
||
* @param {*} tags 标签数组["tag1","tag2"]
|
||
* @param {*} successCallback
|
||
* @param {*} errorCallback
|
||
*/
|
||
TpnsPlugin.prototype.delTags = function(operateName,tags,successCallback,errorCallback){
|
||
this.callNative("delTags", [operateName,tags],successCallback,errorCallback);
|
||
}
|
||
|
||
/**
|
||
* 清除这个设备的所有标签。
|
||
* @param {*} operateName 操作名称 全局唯一,类似于全局序列
|
||
* @param {*} successCallback
|
||
* @param {*} errorCallback
|
||
*/
|
||
TpnsPlugin.prototype.clearTags = function(operateName,successCallback,errorCallback){
|
||
this.callNative("clearTags", [operateName],successCallback,errorCallback);
|
||
}
|
||
|
||
/**
|
||
* 获取这个设备的标签
|
||
* @param {*} operateName 操作名称 全局唯一,类似于全局序列
|
||
* @param {*} offset 开始位置
|
||
* @param {*} limit 取值数量 最大100
|
||
* @param {*} successCallback 返回标签数组字符串
|
||
* @param {*} errorCallback
|
||
*/
|
||
TpnsPlugin.prototype.queryTags = function(operateName,offset,limit,successCallback,errorCallback){
|
||
this.callNative("queryTags", [operateName,offset,limit],successCallback,errorCallback);
|
||
}
|
||
|
||
|
||
/**
|
||
* 添加属性(带回调):有则覆盖,无则添加。
|
||
* @param {*} operateName 操作名称 全局唯一,类似于全局序列
|
||
* @param {*} attrs 属性对象 {"属性名1":"属性值1","属性名2":"属性值2"}
|
||
* @param {*} successCallback
|
||
* @param {*} errorCallback
|
||
*/
|
||
TpnsPlugin.prototype.upsertAttributes = function(operateName,attrs,successCallback,errorCallback){
|
||
this.callNative("upsertAttributes", [operateName,attrs],successCallback,errorCallback);
|
||
}
|
||
|
||
/**
|
||
* 更新用户属性
|
||
* @param {*} operateName 操作名称 全局唯一,类似于全局序列
|
||
* @param {*} attrs 属性对象 {"属性名1":"属性值1","属性名2":"属性值2"}
|
||
* @param {*} successCallback
|
||
* @param {*} errorCallback
|
||
*/
|
||
TpnsPlugin.prototype.clearAndAppendAttributes = function(operateName,attrs,successCallback,errorCallback){
|
||
this.callNative("clearAndAppendAttributes", [operateName,attrs],successCallback,errorCallback);
|
||
}
|
||
|
||
/**
|
||
* 删除指定的属性。
|
||
* @param {*} operateName 操作名称 全局唯一,类似于全局序列
|
||
* @param {*} attrs 属性名数组 ["属性名1","属性名2"]
|
||
* @param {*} successCallback
|
||
* @param {*} errorCallback
|
||
*/
|
||
TpnsPlugin.prototype.delAttributes = function(operateName,attrs,successCallback,errorCallback){
|
||
this.callNative("delAttributes", [operateName,attrs],successCallback,errorCallback);
|
||
}
|
||
|
||
/**
|
||
* 删除已设置的所有属性
|
||
* @param {*} operateName 操作名称 全局唯一,类似于全局序列
|
||
* @param {*} successCallback
|
||
* @param {*} errorCallback
|
||
*/
|
||
TpnsPlugin.prototype.clearAttributes = function(operateName,successCallback,errorCallback){
|
||
this.callNative("clearAttributes", [operateName],successCallback,errorCallback);
|
||
}
|
||
|
||
|
||
|
||
/**
|
||
* 取消全部消息通知
|
||
* @param {*} successCallback
|
||
* @param {*} errorCallback
|
||
*/
|
||
TpnsPlugin.prototype.cancelAllNotifaction = function(successCallback,errorCallback){
|
||
this.callNative("cancelAllNotifaction", [],successCallback,errorCallback);
|
||
}
|
||
|
||
module.exports = new TpnsPlugin(); |