|
@@ -0,0 +1,522 @@
|
|
|
+/*
|
|
|
+ * UI control
|
|
|
+ * version : 3.4
|
|
|
+ * author : lufeng
|
|
|
+ * date : 2015-7-15
|
|
|
+ */
|
|
|
+;
|
|
|
+(function(window) {
|
|
|
+ /**
|
|
|
+ 插件类,提供数据请求、界面加载、数据持久化、日期控件等接口,提供全局属性。
|
|
|
+ @class app
|
|
|
+ */
|
|
|
+ window.app = window.app || {};
|
|
|
+
|
|
|
+ /**
|
|
|
+ 页面事件
|
|
|
+ @class app.page
|
|
|
+ */
|
|
|
+ window.app.page= window.app.page|| {};
|
|
|
+
|
|
|
+ /*========================page=======================================*/
|
|
|
+ /**
|
|
|
+ 页面dom结构完成后的事件,类似window.onload
|
|
|
+ */
|
|
|
+ app.page.onReady = function(){}
|
|
|
+
|
|
|
+ /**
|
|
|
+ 页面加载完成后执行的事件,类似$(function(){...})
|
|
|
+ */
|
|
|
+ app.page.onLoad = function(){}
|
|
|
+
|
|
|
+ app.page.onError=function(msg,url,line){
|
|
|
+ //这个会全局捕获js报出的错误,生产环境可以禁用掉
|
|
|
+ alert("url:"+url+" msg:"+msg+" line:"+line);
|
|
|
+ }
|
|
|
+ /*========================page=======================================*/
|
|
|
+
|
|
|
+ /*========================link=======================================*/
|
|
|
+ /**
|
|
|
+ 方法
|
|
|
+ */
|
|
|
+ window.app.link = window.app.link || {};
|
|
|
+ window.app.barcode = window.app.barcode || {};
|
|
|
+ window.app.phone = window.app.phone || {};
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取用户登录信息
|
|
|
+ */
|
|
|
+ app.link.getLoginInfo = function(succesCallback, failerCallback){
|
|
|
+ WebViewJavascriptBridge.callHandler('getLoginInfo',function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ if(result.success){
|
|
|
+ succesCallback(result);
|
|
|
+ }else{
|
|
|
+ failerCallback(result);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取当前用户所选区域
|
|
|
+ */
|
|
|
+ app.link.getCurrentCity = function(succesCallback, failerCallback){
|
|
|
+ WebViewJavascriptBridge.callHandler('getCurrentCity',function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ if(result.success){
|
|
|
+ succesCallback(res);
|
|
|
+ }else{
|
|
|
+ failerCallback(result);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 刷新
|
|
|
+ */
|
|
|
+ app.refresh = function(succesCallback, failerCallback){
|
|
|
+ WebViewJavascriptBridge.callHandler('refresh', function() {});
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 打开分享页
|
|
|
+ */
|
|
|
+ app.link.shareWebPage = function(title, desc, thumbUrl, targetUrl, succesCallback, failerCallback){
|
|
|
+ var params = {
|
|
|
+ webpage : {
|
|
|
+ title : title,
|
|
|
+ targetUrl : targetUrl,
|
|
|
+ desc : desc,
|
|
|
+ thumbUrl : thumbUrl
|
|
|
+ }
|
|
|
+ };
|
|
|
+ WebViewJavascriptBridge.callHandler('shareWebPage',params, function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ if(result.success){
|
|
|
+ succesCallback(res);
|
|
|
+ }else{
|
|
|
+ failerCallback(result);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 定位坐标
|
|
|
+ */
|
|
|
+ app.getLocation = function(succesCallback, failerCallback){
|
|
|
+ WebViewJavascriptBridge.callHandler('getLocation', function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ if(result.success){
|
|
|
+ succesCallback(result);
|
|
|
+ }else{
|
|
|
+ failerCallback(result);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 二维码读取
|
|
|
+ */
|
|
|
+ app.barcode.scan = function(succesCallback, failerCallback){
|
|
|
+ WebViewJavascriptBridge.callHandler('scan', function(res) {
|
|
|
+ if(res == null || res == ""){
|
|
|
+ failerCallback(res);
|
|
|
+ }else{
|
|
|
+ succesCallback(res);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取网络状态
|
|
|
+ */
|
|
|
+ app.link.networType = function(succesCallback, failerCallback){
|
|
|
+ WebViewJavascriptBridge.callHandler('networType', function(res) {
|
|
|
+ succesCallback(res);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 跳转登录页
|
|
|
+ */
|
|
|
+ app.link.goLogin = function(succesCallback, failerCallback, object){
|
|
|
+ WebViewJavascriptBridge.callHandler('goLogin',object, function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ if(result.success){
|
|
|
+ succesCallback(result);
|
|
|
+ }else{
|
|
|
+ failerCallback(res);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取版本号
|
|
|
+ */
|
|
|
+ app.link.getVersion = function(succesCallback, failerCallback){
|
|
|
+ WebViewJavascriptBridge.callHandler('getVersion', function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ if(result.success){
|
|
|
+ succesCallback(result);
|
|
|
+ }else{
|
|
|
+ failerCallback(result);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 人脸识别
|
|
|
+ */
|
|
|
+ app.link.getFaceCheck = function(succesCallback, failerCallback, object){
|
|
|
+ WebViewJavascriptBridge.callHandler('getFaceCheck',object, function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ if(result.success){
|
|
|
+ succesCallback(result);
|
|
|
+ }else{
|
|
|
+ failerCallback(result);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 静默校验
|
|
|
+ */
|
|
|
+ app.link.getSilentAuth = function(succesCallback, failerCallback, object){
|
|
|
+ WebViewJavascriptBridge.callHandler('getSilentAuth',object, function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ if(result.success){
|
|
|
+ succesCallback(result);
|
|
|
+ }else{
|
|
|
+ failerCallback(result);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 原生弹窗
|
|
|
+ */
|
|
|
+ app.alert = function(message, succesCallback, title, buttonName){
|
|
|
+ var param={};
|
|
|
+ param.message=message;
|
|
|
+ param.title=title;
|
|
|
+ param.buttonName=buttonName;
|
|
|
+ WebViewJavascriptBridge.callHandler('alert',param, function(res) {
|
|
|
+ succesCallback(res);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 调用百度地图
|
|
|
+ */
|
|
|
+ app.link.getBaiduMap = function(succesCallback, failerCallback){
|
|
|
+ WebViewJavascriptBridge.callHandler('getBaiduMap', function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ if(result.success){
|
|
|
+ succesCallback(result);
|
|
|
+ }else{
|
|
|
+ failerCallback(res);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 打开拨号页
|
|
|
+ */
|
|
|
+ app.phone.dial = function(object){
|
|
|
+ WebViewJavascriptBridge.callHandler('dial',object);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 调用手机拍照/图库
|
|
|
+ */
|
|
|
+ app.link.getTakePictures = function(succesCallback, object){
|
|
|
+ WebViewJavascriptBridge.callHandler('getTakePictures',object, function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ succesCallback(result);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 手势解锁
|
|
|
+ */
|
|
|
+ app.link.getGestureUnlock = function(succesCallback, failerCallback){
|
|
|
+ WebViewJavascriptBridge.callHandler('getGestureUnlock', function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ if(result.success){
|
|
|
+ succesCallback(res);
|
|
|
+ }else{
|
|
|
+ failerCallback(res);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取通讯录信息
|
|
|
+ */
|
|
|
+ app.link.getAddressBookList = function(succesCallback, failerCallback, object){
|
|
|
+ WebViewJavascriptBridge.callHandler('getAddressBookList',object, function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ if(result.success){
|
|
|
+ succesCallback(result);
|
|
|
+ }else{
|
|
|
+ failerCallback(res);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 调用地图导航
|
|
|
+ */
|
|
|
+ app.link.getMapNavigator = function(succesCallback, object){
|
|
|
+ WebViewJavascriptBridge.callHandler('getMapNavigator',object, function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ if(result.success){
|
|
|
+ succesCallback(result);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 开启新页面(关闭当前页)
|
|
|
+ */
|
|
|
+ app.link.goOpenNewPageOrExit = function(object, succesCallback, failerCallback){
|
|
|
+ WebViewJavascriptBridge.callHandler('goOpenNewPageOrExit',object, function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ if(result.success){
|
|
|
+ succesCallback(result);
|
|
|
+ }else{
|
|
|
+ failerCallback(res);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取终端IP
|
|
|
+ */
|
|
|
+ app.link.getIpAddress = function(succesCallback){
|
|
|
+ WebViewJavascriptBridge.callHandler('getIpAddress', function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ succesCallback(result);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 文件上传
|
|
|
+ */
|
|
|
+ app.link.uploadFile = function(succesCallback, failerCallback, object){
|
|
|
+ WebViewJavascriptBridge.callHandler('uploadFile',object, function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ if(result.success){
|
|
|
+ succesCallback(result);
|
|
|
+ }else{
|
|
|
+ failerCallback(res);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 临时操作
|
|
|
+ */
|
|
|
+ app.link.temporaryOperation = function(object){
|
|
|
+ WebViewJavascriptBridge.callHandler('temporaryOperation',object);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取设备信息
|
|
|
+ */
|
|
|
+ app.link.getDeviceInfo = function(succesCallback){
|
|
|
+ WebViewJavascriptBridge.callHandler('getDeviceInfo', function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ succesCallback(result);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 跳转至指定原生页面
|
|
|
+ */
|
|
|
+ app.link.startNativePage = function(succesCallback, object){
|
|
|
+ WebViewJavascriptBridge.callHandler('startNativePage',object, function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ succesCallback(result);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 视频录制
|
|
|
+ */
|
|
|
+ app.link.getMediaRecorder = function(succesCallback, object){
|
|
|
+ WebViewJavascriptBridge.callHandler('getMediaRecorder',object, function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ succesCallback(result);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回
|
|
|
+ */
|
|
|
+ app.back = function(){
|
|
|
+ WebViewJavascriptBridge.callHandler('back');
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 跳转其他APP
|
|
|
+ */
|
|
|
+ app.link.jumpOtherApp = function(succesCallback, object){
|
|
|
+ WebViewJavascriptBridge.callHandler('jumpOtherApp',object, function() {});
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 网页支付
|
|
|
+ */
|
|
|
+ app.link.wapPay = function(object){
|
|
|
+ WebViewJavascriptBridge.callHandler('wapPay',object);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 打开支付宝认证页
|
|
|
+ */
|
|
|
+ app.link.doAlipayVerify = function(object){
|
|
|
+ WebViewJavascriptBridge.callHandler('doAlipayVerify',object);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 打开支付宝钱包页
|
|
|
+ */
|
|
|
+ app.link.doAlipayPayment = function(succesCallback, object){
|
|
|
+ WebViewJavascriptBridge.callHandler('doAlipayPayment',object, function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ succesCallback(result);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 确认弹框
|
|
|
+ */
|
|
|
+ app.link.confirm = function(succesCallback, object){
|
|
|
+ WebViewJavascriptBridge.callHandler('confirm',object, function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ succesCallback(result);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 输入弹框
|
|
|
+ */
|
|
|
+ app.link.prompt = function(succesCallback, object){
|
|
|
+ WebViewJavascriptBridge.callHandler('prompt',object, function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ succesCallback(result);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 隐藏/弹起系统软键盘
|
|
|
+ */
|
|
|
+ app.link.softInput = function(object){
|
|
|
+ WebViewJavascriptBridge.callHandler('softInput',object);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存图片/视频到系统图库
|
|
|
+ */
|
|
|
+ app.link.saveFileToGallery = function(succesCallback, object){
|
|
|
+ WebViewJavascriptBridge.callHandler('saveFileToGallery',object, function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ succesCallback(result);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查看/签署pdf文件
|
|
|
+ */
|
|
|
+ app.link.showPDF = function(succesCallback, object){
|
|
|
+ WebViewJavascriptBridge.callHandler('showPDF',object, function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ succesCallback(result);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查看edc文件
|
|
|
+ */
|
|
|
+ app.link.showEDC = function(succesCallback, object){
|
|
|
+ WebViewJavascriptBridge.callHandler('showEDC',object, function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ succesCallback(result);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 调用OCR插件
|
|
|
+ */
|
|
|
+ app.link.getOCR = function(succesCallback, object){
|
|
|
+ WebViewJavascriptBridge.callHandler('getOCR',object, function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ succesCallback(result);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 调整屏幕亮度
|
|
|
+ */
|
|
|
+ app.link.adjustBrightness = function(object){
|
|
|
+ WebViewJavascriptBridge.callHandler('adjustBrightness',object);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 恢复系统屏幕亮度
|
|
|
+ */
|
|
|
+ app.link.resetBrightness = function(){
|
|
|
+ WebViewJavascriptBridge.callHandler('resetBrightness');
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 播放或录制音频
|
|
|
+ */
|
|
|
+ app.link.playOrRecordAudio = function(succesCallback, object){
|
|
|
+ WebViewJavascriptBridge.callHandler('playOrRecordAudio',object, function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ succesCallback(result);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 播放或录制视频
|
|
|
+ */
|
|
|
+ app.link.playOrRecordVideo = function(succesCallback, object){
|
|
|
+ WebViewJavascriptBridge.callHandler('playOrRecordVideo',object, function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ succesCallback(result);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 公共方法
|
|
|
+ 保存PDF到相册
|
|
|
+ AES解密
|
|
|
+ 查看ofd文件
|
|
|
+ 同步证照文件
|
|
|
+ 打开证照文件
|
|
|
+ 打开证照文件
|
|
|
+ RSA解密
|
|
|
+ PDF转图片
|
|
|
+ */
|
|
|
+ app.link.publicMethod = function(succesCallback, failerCallback, object){
|
|
|
+ WebViewJavascriptBridge.callHandler('publicMethod',object, function(res) {
|
|
|
+ var result = JSON.parse(res);
|
|
|
+ if(result.success){
|
|
|
+ succesCallback(result);
|
|
|
+ }else{
|
|
|
+ failerCallback(result);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ /*========================link=======================================*/
|
|
|
+})(window);
|
|
|
+
|
|
|
+//页面完整加载完成
|
|
|
+window.addEventListener("load", function(event) {
|
|
|
+ setTimeout(function(){
|
|
|
+ app.page.onLoad();
|
|
|
+ }, 200);
|
|
|
+});
|