You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

122 lines
3.3 KiB

// 监听plusready事件
document.addEventListener("plusready", function() {
//监听推送消息点击事件
plus.push.addEventListener("click", function(msg) {
//解析数据
var jsonPayload = getPayload('click', msg);
//业务逻辑
openWindowByPushType(jsonPayload);
});
//监听在线推送消息点击事件
plus.push.addEventListener("receive", function(msg) {
//解析数据
var jsonPayload = getPayload('receive', msg);
//如果是本地消息进行业务逻辑,否则创建本地消息
if(jsonPayload.msgType == 'LocalMSG') {
//业务
} else {
createLocalPushMsg(msg.content, jsonPayload);
}
});
});
/***
* 解析透传数据
* @param eventType
* @oaram msg
* return payload
*/
function getPayload(eventType, msg) {
var os = plus.os.name;
//安卓push触发click和receive事件获取数据的方法都是String转JSON
if(os == 'Android') {
if(typeof msg.payload == 'object') {
//直接获取msg的payload
return msg.payload;
}
if(typeof msg.payload == 'string') {
//String转JSON
return JSON.parse(msg.payload);
}
}
if(os == 'iOS') {
//将msg的二级payload对象转为JSON,然后再获取第三级payload
if(eventType == 'click') {
//解析一级的payload对象
var onePayload = JSON.parse(msg.payload);
//判断消息类型
if(onePayload.msgType == 'LocalMSG') {
//本地消息,直接返回String转JSON
return JSON.parse(msg.payload);
} else {
return JSON.parse(msg.payload.payload).payload;
}
}
if(eventType == 'receive') {
if(typeof msg.payload == 'object') {
//直接获取msg的payload
return msg.payload;
}
if(typeof msg.payload == 'string') {
//String转JSON
return JSON.parse(msg.payload);
}
}
}
}
/**
* 本地创建一条推送消息
*/
function createLocalPushMsg(content, payload) {
//本地信息的标识
payload.msgType = 'LocalMSG';
plus.push.createMessage(content, JSON.stringify(payload), {});
}
function openWindowByPushType(payload) {
//透传的订单id
var orderId = payload.orderId;
//透传的广告id
var adId = payload.adId;
//推送类型
var pushType = payload.pushType;
//带OTC_ORDER前缀的,跳转至法币订单详情页面
if(pushType.indexOf("OTC_ORDER") != -1) {
var orderPage = plus.webview.getWebviewById('html/OTC/html/payment.html');
//判断页面是否存在
if(orderPage == null) {
app.openWin("html/OTC/html/payment.html", "html/OTC/html/payment.html", {}, {
orderId: orderId
});
} else {
orderPage.evalJS("selectByOrderId(" + JSON.stringify(orderId) + ");");
}
}
//带OTC_AD前缀的,跳转至法币订单详情页面
if(pushType.indexOf("OTC_AD") != -1) {
var adPage = plus.webview.getWebviewById('html/OTC/html/ad_manager.html');
//判断页面是否存在
if(adPage == null) {
app.openWin("html/OTC/html/ad_manager.html", "html/OTC/html/ad_manager.html", {}, {
adId: adId
});
} else {
adPage.evalJS("listUserAds();");
}
}
//带CCT_HISTORY前缀的,跳转至成交历史页面
if(pushType.indexOf("CCT_HISTORY") != -1) {
var historyPage = plus.webview.getWebviewById('html/cct/html/history.html');
//判断页面是否存在
if(historyPage == null) {
app.openWin("html/cct/html/history.html", "html/cct/html/history.html", {}, {});
} else {
historyPage.evalJS("listUserDetail();");
}
}
}