/** * @author 何杰 * @date 2016-08-01 12:00:00 * @address www.yitong.com.cn * @mail hj@yitong.com.cn * @desc: 屹通客户端组件api */ var Fw = {}; Fw.device = {}; Fw.device.Device = function () { var userAgent = navigator.userAgent; //ios 事件队列 var eventQueue = []; return { //是否iOS设备 is_ios: userAgent.indexOf('iPhone') > -1 || userAgent.indexOf('iPad') > -1, //是否Android设备 is_android: userAgent.indexOf('Android') > -1, /** * ios * 注册事件 * @param code 事件编码 * @param options 参数 */ addEvent : function(code, options) { if (options && code) { eventQueue.push(JSON.stringify({ code : code, name : options })); } }, /** * ios * 原生调用,从队列中获取事件 * @returns {string} */ getEvent : function() { return eventQueue.length > 0 ? eventQueue.shift() : '0'; } }; }(); /** * 供第三方调用API */ Fw.device.api = function () { var device = Fw.device.Device; return { /** * @brief 获取经纬度 */ handCodeGetLocation : function (fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } var option = {}; option.callBack = fn; device.is_ios && device.addEvent("51",JSON.stringify(option)); device.is_android && GetInfoJs.getLocation(JSON.stringify(option)); }, /** * @brief 获取用户信息 */ getUserInfo : function (fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } var option = {}; option.callback = fn; device.is_ios && device.addEvent("getUserInfo",JSON.stringify(option)); device.is_android && GetInfoJs.getUserInfo(JSON.stringify(option)); }, /** * @brief */ getCustNo : function (fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } device.is_ios && device.addEvent("getCustNo",fn); device.is_android && GetInfoJs.getCustNo(fn); }, initTitle : function (option) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } device.is_ios && device.addEvent("initTitle",JSON.stringify(option)); device.is_android && GetInfoJs.initTitle(JSON.stringify(option)); }, setBackFun : function (option) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } device.is_ios && device.addEvent("goBack",JSON.stringify(option)); device.is_android && GetInfoJs.goBack(JSON.stringify(option)); }, setRightButton : function (option) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } device.is_ios && device.addEvent("setRightButton",JSON.stringify(option)); device.is_android && GetInfoJs.setRightButton(JSON.stringify(option)); }, getBackFun : function (fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } device.is_ios && device.addEvent("getBackFun",fn); device.is_android && GetInfoJs.getBackFun(option); }, startRecordVoice : function (option) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } device.is_ios && device.addEvent("startRecordVoice",JSON.stringify(option)); device.is_android && GetInfoJs.startRecordVoice(); }, stopRecordVoice : function (fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } device.is_ios && device.addEvent("stopRecordVoice",fn); device.is_android && GetInfoJs.stopRecordVoice(fn); }, getPhoneNo : function (fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } device.is_ios && device.addEvent("getPhoneNo",fn); device.is_android && GetInfoJs.getPhoneNo(fn); }, /** *扫一扫 */ openScanPage : function (option) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } device.is_ios && device.addEvent("goToQrCode",JSON.stringify(option)); device.is_android && GetInfoJs.openScanPage(); }, /** *付款码 */ openPaymentCode : function (option) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } device.is_ios && device.addEvent("gotoPaymentCode",JSON.stringify(option)); device.is_android && GetInfoJs.openPaymentCode(JSON.stringify(option)); }, /** * 拨打电话 */ gotoSystemPhone : function (fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } device.is_ios && device.addEvent("gotoSystemPhone",fn); device.is_android && GetInfoJs.gotoSystemPhone(fn); }, /** * 关闭当前页面 */ goBack : function (option) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } device.is_ios && device.addEvent("getBackFun",JSON.stringify(option)); device.is_android && GetInfoJs.goBack(); }, /** * 调用物理返回键 */ nativeBack : function () { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } option = {}; // device.is_ios && device.addEvent("getBackFun",JSON.stringify(option)); device.is_android && GetInfoJs.nativeBack(); }, /** * 地图导航 */ openMap : function (option) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } device.is_ios && device.addEvent("openMap",JSON.stringify(option)); device.is_android && GetInfoJs.openMap(JSON.stringify(option)); }, /** * 登录 */ gotoLoginCallback : function (fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } device.is_ios && device.addEvent("goToLoginView",JSON.stringify(fn)); device.is_android && GetInfoJs.gotoLoginCallback(JSON.stringify(fn)); }, loginStatus : function (option) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } device.is_ios && device.addEvent("loginStatus",JSON.stringify(option)); device.is_android && GetInfoJs.loginStatus(JSON.stringify(option)); }, checkRecordVoicePermission : function (fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } // device.is_ios && device.addEvent("getBackFun",JSON.stringify(option)); device.is_android && GetInfoJs.checkRecordVoicePermission(fn); }, openMenu : function (fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } // device.is_ios && device.addEvent("getBackFun",JSON.stringify(option)); device.is_android && GetInfoJs.gotoCommonlyUsedMenu(fn); }, /** * @brief 分享 */ handCodeShare : function (param,fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } var option = {}; option.fn = fn; option.param = param; device.is_ios && device.addEvent("41",JSON.stringify(param)); device.is_android && GetInfoJs.showShare(JSON.stringify(option)); }, /** * @brief 拍照、相册 */ handCodeGetPhotos : function (fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } var option = {}; option.fn = fn; device.is_ios && device.addEvent("41",JSON.stringify(param)); device.is_android && GetInfoJs.takePhotos(JSON.stringify(option)); }, /** * @brief 拍照 */ openCamera : function (fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } var option = {}; option.fn = fn; // device.is_ios && device.addEvent("41",JSON.stringify(param)); device.is_android && GetInfoJs.openCamera(JSON.stringify(option)); }, /** * @brief 相册 */ photoAlbum : function (fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } var option = {}; option.fn = fn; // device.is_ios && device.addEvent("41",JSON.stringify(param)); device.is_android && GetInfoJs.photoAlbum(JSON.stringify(option)); }, /** * @brief 复制到粘贴板 */ pasteStringToSystem : function (fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } device.is_ios && device.addEvent("pasteStringToSystem",fn); device.is_android && GetInfoJs.pasteStringToSystem(fn); }, queryAppFamily : function (fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } //TODO ios粘贴方法 device.is_android && GetInfoJs.queryAppFamily(fn); }, getHeaderImg : function (fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } //TODO ios粘贴方法 device.is_android && GetInfoJs.getHeaderImg(fn); }, getSystemVersion : function (fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } device.is_ios && device.addEvent("getEquipmentInfo",fn); device.is_android && GetInfoJs.getSystemVersion(fn); }, /** * @brief 跳转VUE */ goVUEPage : function (param,fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } var option = {}; option.fn = fn; option.param = param; device.is_ios && device.addEvent("goToAresPage",JSON.stringify(param)); device.is_android && GetInfoJs.showShare(JSON.stringify(option)); }, /** 甘肃宁波观影 */ checkDiscountLevel : function (fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } var option = {}; option.fn = "callbackCheckDiscountLevel"; option.shopid = "1100529310001000001"; option.sign = "bd91222d6fcff0de67dd28583926ae92" device.is_ios && device.addEvent("checkDiscountLevel",JSON.stringify(option)); device.is_android && GetInfoJs.checkDiscountLevel(fn); }, /** 宁波活动 */ checkBFMLevel : function (fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } var option = {}; option.fn = "callbackCheckBFMLevel"; option.shopid = "1100529310001000009"; device.is_ios && device.addEvent("checkBFMLevel",JSON.stringify(option)); device.is_android && GetInfoJs.checkBFMLevel(option); }, uploadThirdCertifyEvents : function (param ,fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } var option = {}; option.fn = "callBackUploadThirdCertifyEvents"; option.param = param; device.is_ios && device.addEvent("uploadThirdCertifyEvents",JSON.stringify(param)); device.is_android && GetInfoJs.uploadThirdCertifyEvents(option); }, checkUserChangeOrNoAndLoginStatus : function (param,fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } var option = {}; option.fn = fn; option.param = param; device.is_ios && device.addEvent("checkUserChangeOrNoAndLoginStatus",JSON.stringify(param)); device.is_android && GetInfoJs.checkUserChangeOrNoAndLoginStatus(JSON.stringify(option)); }, handCodePay : function (param,fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } var option = {}; option.fn = fn; option.param = param; device.is_ios && device.addEvent("HandCodePay",JSON.stringify(param)); device.is_android && GetInfoJs.go2Pay(JSON.stringify(param)); }, publicActivityEvents : function (param,fn) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } var option = {}; option.fn = fn; option.param = param; device.is_ios && device.addEvent("publicActivityEvents",JSON.stringify(option)); device.is_android && GetInfoJs.publicActivityEvents(JSON.stringify(option)); }, getNewAuthorization : function (param) { if(!device.is_ios && !device.is_android){ alert("请在ios/android设备上使用!"); return; } device.is_ios && device.addEvent("getNewAuthorization",JSON.stringify(param)); device.is_android && GetInfoJs.getNewAuthorization(JSON.stringify(param)); } } }();