浏览代码

增加闽政通IOS本地化

sandm 1 年之前
父节点
当前提交
bfe473539a

+ 109 - 0
public/themes/default/assets/mobile/js/iOSBridge.js

@@ -0,0 +1,109 @@
+function setupWebViewJavascriptBridge(callback) {
+    if (window.WebViewJavascriptBridge) { return callback(WebViewJavascriptBridge); }
+    if (window.WVJBCallbacks) { return window.WVJBCallbacks.push(callback); }
+    window.WVJBCallbacks = [callback];
+    var WVJBIframe = document.createElement('iframe');
+    WVJBIframe.style.display = 'none';
+    WVJBIframe.src = 'https://__bridge_loaded__';
+    document.documentElement.appendChild(WVJBIframe);
+    setTimeout(function() { document.documentElement.removeChild(WVJBIframe) }, 0)
+}
+
+setupWebViewJavascriptBridge(function(bridge) {
+    console.log(bridge)
+    /*获取用户登录信息*/
+    bridge.registerHandler('getLoginInfo',function(succesCallback, failerCallback) {succesCallback();failerCallback();});
+    /*获取当前用户所选区域*/
+    bridge.registerHandler('getCurrentCity',function(succesCallback, failerCallback) {succesCallback();failerCallback();});
+    /*刷新*/
+    bridge.registerHandler('refresh',function(succesCallback, failerCallback) {succesCallback();failerCallback();})
+    /*打开分享页*/
+    bridge.registerHandler('shareWebPage',function(title, desc, thumbUrl, targetUrl, succesCallback, failerCallback) {succesCallback();failerCallback();})
+    /*定位坐标*/
+    bridge.registerHandler('location',function(succesCallback, failerCallback) {succesCallback();failerCallback();})
+    /*二维码读取*/
+    bridge.registerHandler('scan',function(succesCallback, failerCallback) {succesCallback();failerCallback();})
+    /*获取网络状态*/
+    bridge.registerHandler('networType',function(succesCallback, failerCallback) {succesCallback();failerCallback();})
+    /*跳转登录页*/
+    bridge.registerHandler('goLogin',function(succesCallback, failerCallback, params) {succesCallback();failerCallback();})
+    /*获取版本号*/
+    bridge.registerHandler('getVersion',function(succesCallback, failerCallback) {succesCallback();failerCallback();})
+    /*人脸识别*/
+    bridge.registerHandler('getFaceCheck',function(succesCallback, failerCallback, params) {succesCallback();failerCallback();})
+    /*静默校验*/
+    bridge.registerHandler('getSilentAuth',function(succesCallback, failerCallback, params) {succesCallback();failerCallback();})
+    /*原生弹窗*/
+    bridge.registerHandler('alert',function(message, succesCallback, title, buttonName) {succesCallback();})
+    /*调用百度地图*/
+    bridge.registerHandler('getBaiduMap',function(succesCallback, failerCallback, params) {succesCallback();failerCallback();});
+    /*打开拨号页*/
+    bridge.registerHandler('dial',function(succesCallback, failerCallback, params) {succesCallback();failerCallback();});
+    /*调用手机拍照/图库*/
+    bridge.registerHandler('getTakePictures',function(succesCallback, params) {succesCallback();});
+    /*手势解锁*/
+    bridge.registerHandler('getGestureUnlock',function(succesCallback, failerCallback) {succesCallback();failerCallback();});
+    /*获取通讯录信息*/
+    bridge.registerHandler('getAddressBookList',function(succesCallback, failerCallback, params) {succesCallback();failerCallback();});
+    /*调用地图导航*/
+    bridge.registerHandler('getMapNavigator',function(succesCallback, params) {succesCallback();failerCallback();});
+    /*开启新页面(关闭当前页)*/
+    bridge.registerHandler('goOpenNewPageOrExit',function(params, succesCallback, failerCallback) {succesCallback();failerCallback();});
+    /*获取终端IP*/
+    bridge.registerHandler('getIpAddress',function(succesCallback) {succesCallback();});
+    /*文件上传*/
+    bridge.registerHandler('uploadFile',function(succesCallback, failerCallback, params) {succesCallback();failerCallback();});
+    /*临时操作*/
+    bridge.registerHandler('temporaryOperation',function(params) {});
+    /*获取设备信息*/
+    bridge.registerHandler('getDeviceInfo',function(succesCallback) {succesCallback();});
+    /*跳转至指定原生页面*/
+    bridge.registerHandler('startNativePage',function(succesCallback, params) {succesCallback();});
+    /*视频录制*/
+    bridge.registerHandler('getMediaRecorder',function(succesCallback, params) {succesCallback();});
+    /*返回*/
+    bridge.registerHandler('back');
+    /*跳转其他APP*/
+    bridge.registerHandler('jumpOtherApp',function(succesCallback, failerCallback, params) {succesCallback();failerCallback();});
+    /*网页支付*/
+    bridge.registerHandler('wapPay',function(params) {});
+    /*打开支付宝认证页*/
+    bridge.registerHandler('doAlipayVerify',function(params) {});
+    /*打开支付宝钱包页*/
+    bridge.registerHandler('doAlipayPayment',function(succesCallback, params) {succesCallback();});
+    /*确认弹框*/
+    bridge.registerHandler('confirm',function(succesCallback, params) {succesCallback();});
+    /*输入弹框*/
+    bridge.registerHandler('prompt',function(succesCallback, params) {succesCallback();});
+    /*隐藏/弹起系统软键盘*/
+    bridge.registerHandler('softInput',function(params) {});
+    /*保存图片/视频到系统图库*/
+    bridge.registerHandler('saveFileToGallery',function(succesCallback, params) {succesCallback();});
+    /*查看/签署pdf文件*/
+    bridge.registerHandler('showPDF',function(succesCallback, params) {succesCallback();});
+    /*查看edc文件*/
+    bridge.registerHandler('showEDC',function(succesCallback, params) {succesCallback();});
+    /*调用OCR插件*/
+    bridge.registerHandler('getOCR',function(succesCallback, params) {succesCallback();});
+    /*调节屏幕亮度*/
+    bridge.registerHandler('adjustBrightness',function(params) {});
+    /*恢复系统屏幕亮度*/
+    bridge.registerHandler('resetBrightness');
+    /*播放或录制音频*/
+    bridge.registerHandler('playOrRecordAudio',function(succesCallback, params) {succesCallback();});
+    /*播放或录制视频*/
+    bridge.registerHandler('playOrRecordVideo',function(succesCallback, params) {succesCallback();});
+    /*公共方法--{
+    保存PDF到相册
+    AES解密
+    查看ofd文件
+    同步证照文件
+    打开证照文件
+    打开证照文件
+    RSA解密
+    PDF转图片
+    }*/
+    bridge.registerHandler('publicMethod',function(succesCallback, failerCallback, params) {succesCallback();failerCallback();});
+})
+
+

+ 522 - 0
public/themes/default/assets/mobile/js/iOSBridgeInit.js

@@ -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);
+});

+ 32 - 14
public/themes/default/views/mobile/app/auth/mzt.blade.php

@@ -17,12 +17,25 @@
 @endpush
 
 @push('js')
-    <script src="https://mztapp.fujian.gov.cn:8190/mztAppWeb/app/js/mztHybrid.js"></script>
+    <script>
+        var u = navigator.userAgent;
+        if (u.indexOf('mPaaSClient') > -1) {
+            document.write('<script src="https://mztapp.fujian.gov.cn:8190/mztAppWeb/app/js/mPaasHybrid.js"></scr' + 'ipt>')
+        } else if (u.indexOf('mzt') > -1) {
+            if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) {
+                document.write('<script src="/themes/default/assets/mobile/js/AndroidCordova.js"></scr' + 'ipt>')
+                document.write('<script src="/themes/default/assets/mobile/js/AndroidCordovaInit.js"></scr' + 'ipt>')
+            } else if (u.indexOf('iPhone') > -1 || u.indexOf('iPad') > -1) {
+                document.write('<script src="/themes/default/assets/mobile/js/iOSBridge.js"></scr' + 'ipt>')
+                document.write('<script src="/themes/default/assets/mobile/js/iOSBridgeInit.js"></scr' + 'ipt>')
+            }
+        }
+    </script>
     <script src="https://mztapp.fujian.gov.cn:8190/mztAppWeb/app/js/jsencrypt.js"></script>
     <script src="{{ theme_asset('mobile/js/vconsole.min.js') }}"></script>
     <script>
         // VConsole 默认会挂载到 `window.VConsole` 上
-        //var vConsole = new window.VConsole();
+        var vConsole = new window.VConsole();
     </script>
 @endpush
 
@@ -40,20 +53,25 @@
 
             var param = {};
             param.isReturnPage = false;
-            app.link.goLogin(function(result) {
-                console.log(result)
-                $.post("{{route($sub_site.'mobile.login_mzt')}}",result,function(res){
+            try {
+                app.link.goLogin(function(result) {
+                    console.log('11111')
+                    $.post("{{route($sub_site.'mobile.login_mzt')}}",result,function(res){
+
+                        if(res.data.status){
+                            window.location.href = res.data.url;
+                        }else{
+                            console.log(res.data.msg)
+                        }
+                    });
 
-                    if(res.data.status){
-                        window.location.href = res.data.url;
-                    }else{
-                        console.log(res.data.msg)
-                    }
-                });
+                }, function(result) {
+                    $(".output").html("登录失败" + result)
+                },param);
+            } catch (error) {
+                console.log("捕获到错误:", error);
+            }
 
-            }, function(result) {
-                $(".output").html("登录失败" + result)
-            },param);
             {{--app.link.getLoginInfo(function(result) {--}}
             {{--    var userinfo = result;--}}
             {{--    var encrypt = new JSEncrypt();--}}