// 监听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();"); } } }