cordova-plugin-tpns/www/tpns.js

293 lines
10 KiB
JavaScript
Raw Normal View History

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) {
2023-07-28 21:43:04 +08:00
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,
2023-07-28 21:43:04 +08:00
"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();