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
122 lines
3.3 KiB
5 years ago
|
// 监听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();");
|
||
|
}
|
||
|
}
|
||
|
}
|