APP check

/*!
 * =====================================================
 * 共通 JavaScript脚本
 * =====================================================
 */

// 请求路径
var base_url = "";

/*!
 * =====================================================
 * MUI全局设定
 * =====================================================
 */
(function($) {

    // 设置全局initGlobal
    $.initGlobal({
        swipeBack: false, // 滑动返回功能禁用
        statusBarBackground: '#FFFFFF', // iOS状态栏背景色
        keyEventBind: { // 安卓绑定返回按钮
            backbutton: true
        }
    });

    // 设置全局beforeSend
    $.ajaxSettings.beforeSend = function(xhr, setting) {
        setting.timeout = 5000; // 请求超时设置5秒
        console.log('ajax beforeSend:' + JSON.stringify(setting));
    };

    // 设置全局complete
    $.ajaxSettings.complete = function(xhr, status) {
        console.log('ajax complete:' + status);
    };

    // 设置全局success
    $.ajaxSettings.success = function(data) {
        console.log('ajax success:' + JSON.stringify(data));
    };

    // 设置全局error
    $.ajaxSettings.error = function(xhr, type, errorThrown) {
        console.log('ajax error:' + errorThrown);
    };
})(mui);

/*!
 * =====================================================
 * 自定义应用组件
 * =====================================================
 */
var AppUtils = (function($) {

    var owner = {};

    /*!
     * =====================================================
     * 常用共通函数
     * =====================================================
     */

    /**
     * 验证数字
     *
     * @param {String} value 数字
     * @return {Boolean} true:正确/false:错误
     */
    owner.checkNumber = function(value) {
        value = value.replace(/(\()|(\))|(\-)/g, '');
        var reg = /^(([0-9]+)|([0-9]+\.[0-9]{1,3}))$/;
        return reg.test(value);
    };

    /**
     * 验证手机号码
     *
     * @param {String} value 手机号码
     * @return {Boolean} true:正确/false:错误
     */
    owner.checkMobileNumber = function(value) {
        value = value.replace(/(\()|(\))|(\-)/g, '');
        var reg = /^1[3|4|5|7|8](\d{9})$/;
        return reg.test(value);
    };

    /**
     * 电话号码
     *
     * @param {String} value 电话号码
     * @return {Boolean} true:正确/false:错误
     */
    owner.checkPhoneNumber = function(value) {
        value = value.replace(/(\()|(\))|(\-)/g, '');
        var reg = /(^1[3|4|5|7|8](\d{9})$)|(^400\d{7}$)|(^\+86[1-9]{1}\d{7,10}$)|(^0\d{8,11}$)|(\d{6,8})/;
        return reg.test(value);
    };

    /**
     * 验证身份证号码
     *
     * @param {String} value 身份证号码
     * @return {Boolean} true:正确/false:错误
     */
    owner.checkIdCard = function(value) {

        value = value.replace(/(\()|(\))|(\-)/g, '');

        // 权值
        var powers = new Array("7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7", "9", "10", "5", "8", "4", "2");
        // 验证码
        var parityBit = new Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2");

        var valid = false;
        if (value.length == 15) {
            valid = validId15(value);
        } else if (value.length == 18) {
            valid = validId18(value);
        }

        return valid;

        // 校验18位的身份证号码
        function validId18(_id) {
            _id = _id + "";

            var _num = _id.substr(0, 17);
            var _parityBit = _id.substr(17);
            var _power = 0;
            for (var i = 0; i < 17; i++) {
                // 校验每一位的合法性
                if (_num.charAt(i) < '0' || _num.charAt(i) > '9') {
                    return false;
                    break;
                } else {
                    // 加权
                    _power += parseInt(_num.charAt(i)) * parseInt(powers[i]);
                }
            }
            // 取模
            var mod = parseInt(_power) % 11;
            if (parityBit[mod] == _parityBit) {
                return true;
            }
            return false;
        };

        // 校验15位的身份证号码
        function validId15(_id) {
            _id = _id + "";
            for (var i = 0; i < _id.length; i++) {
                // 校验每一位的合法性
                if (_id.charAt(i) < '0' || _id.charAt(i) > '9') {
                    return false;
                    break;
                }
            }
            var year = _id.substr(6, 2);
            var month = _id.substr(8, 2);
            var day = _id.substr(10, 2);
            // 校验年份位
            if (year < '01' || year > '90') {
                return false;
            }
            // 校验月份
            if (month < '01' || month > '12') {
                return false;
            }
            // 校验日
            if (day < '01' || day > '31') {
                return false;
            }
            return true;
        };
        validId(value);
    };

    /**
     * 判断对象是否是undefined/null
     *
     * @param {Object} exp 对象
     */
    owner.isNull = function(exp) {
        if (exp == undefined ||
            exp == null ||
            exp == 'null' ||
            exp == '' ||
            exp == 'undefined') {
            return true;
        }
        return false;
    };

    /**
     * 判断对象是否不是undefined/null
     *
     * @param {Object} exp 对象
     */
    owner.isNotNull = function(exp) {
        return !owner.isNull(exp);
    };

    /**
     * NULL的场合返回空白,或者指定的默认值。
     *
     * @param {Object} expression 校验对象
     * @param {Object} defaultValue 默认值
     */
    owner.esapeNull = function(expression, defaultValue) {
        if (expression == undefined ||
            expression == null ||
            expression == 'null' ||
            expression == 'undefined') {
            return defaultValue || '';
        }
        return expression;
    };

    /**
     * 隐藏部分字符串,显示 xx...
     *
     * @param {String} value 字符串
     * @param {Number} showLength 显示长度
     */
    owner.hideStr = function(value, showLength) {
        // Null值回避
        value = owner.esapeNull(value);

        // 字符串长度小于指定长度
        if (value.length <= showLength) {
            return value;
        }

        return value.substr(0, showLength) + '...';
    };

    /**
     * 取得当前页面文件名
     *
     * @param {Object} href 文件路径
     */
    owner.getFileName = function(href) {
        var reg = /(\w+)\.html/;
        var take = reg.exec(href);
        if (take == null) {
            return "";
        } else {
            return take[1];
        }
    };

    /**
     * 加载脚本文件
     * @param {Object} url
     */
    owner.loadScript = function(url) {
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = url;
        document.getElementsByTagName('head')[0].appendChild(script);
    };

    /*!
     * =====================================================
     * MUI增强函数
     * =====================================================
     */

    /**
     * 关闭启动页
     */
    owner.closeSplashscreen = function() {
        // 关闭splash画面
        plus.navigator.closeSplashscreen();
    };

    /**
     * 设置是否全屏
     */
    owner.setFullscreen = function(isFullscreen) {
        plus.navigator.setFullscreen(isFullscreen);
    };

    /**
     * 重写返回按钮
     */
    owner.back = function() {
        // beforeback
        if (typeof $.options.beforeback === 'function') {
            if ($.options.beforeback() === false) {
                return;
            }
        }
        // 取得当前画面
        var current = plus.webview.currentWebview();

        // Popup画面
        if (current.isPopup) {
            current.close();
        } else {
            // 主体画面
            $.confirm("确认退出?", "确认", ['是', '否'], function(e) {
                if (e.index == 0) {
                    plus.runtime.quit();
                }
            });
        }
    };

    /**
     * 退出APP(安卓下返回按钮)
     */
    owner.quitApp = function() {
        $.confirm("确认退出?", "确认", ['是', '否'], function(e) {
            if (e.index == 0) {
                plus.runtime.quit();
            }
        });
    };

    /**
     * 重启APP
     */
    owner.restartApp = function() {
        plus.runtime.restart();
    };

    /**
     * 关闭所有画面
     *
     * @param {Object} webview 画面
     */
    owner.closeAll = function(webview) {
        var opened = webview.opened();
        if (opened) {
            for (var i = 0, len = opened.length; i < len; i++) {
                var openedWebview = opened[i];
                var open_open = openedWebview.opened();
                if (open_open && open_open.length > 0) {
                    owner.closeAll(openedWebview);
                }
                openedWebview.close();
            }
        }
    };

    /**
     * 关闭画面
     *
     * @param {Object} url 画面ID
     * @param {int} delay 画面关闭动画时间(默认0)
     */
    owner.closeWindow = function(url, delay) {
        var webview;
        if (typeof url === 'string') {
            webview = plus.webview.getWebviewById(url);;
        } else {
            webview = url;
        }

        delay = delay || 0;
        if (webview) {
            webview.close("auto", delay);
        }
    };

    /**
     * 返回到指定画面
     *
     * @param {plus.webview} view 画面ID
     * @param {plus.webview} functionName 方法名
     * @param {plus.webview} data 传递参数
     */
    owner.backTo = function(view, functionName, data) {
        var tarview = null;
        if (typeof view === 'string') {
            tarview = plus.webview.getWebviewById(view);
        } else {
            tarview = view;
        }
        if (functionName) {
            $.fire(tarview, functionName, data);
        }
        owner.closeAll(tarview);
    };

    /**
     * 关闭父页面
     *
     * @param {Object} options
     */
    owner.closeParent = function(options) {
        var parent = plus.webview.currentWebview().opener();
        if (parent) {
            parent.close();
        }
    };

    /**
     * 打开新页面
     *
     * @param {Object} id
     * @param {Object} url
     * @param {Object} style
     * @param {Object} extras
     */
    owner.createWindow = function(id, url, style, extras) {

        // 单参数时
        if (!url) {
            url = id;
            id = owner.getFileName(id);
        }

        // 创建窗口参数
        var options = {
            id: id,
            url: url,
            style: style,
            extras: $.extend({
                isPopup: false
            }, extras)
        };

        // 创建画面
        var webview = $.createWindow(options);

        // 画面加载完毕
        webview.addEventListener("loaded", function() {
            // 不管有没有等待框都关闭一下
            owner.closeWaiting();
            // 画面显示
            webview.show('slide-in-right', 200);
        }, false);
    };

    /**
     * 打开新页面
     *
     * @param {Object} targetUrl 新画面
     * @param {Object} extras 画面间传递参数
     * @param {Object} options 画面配置信息
     */
    owner.openWindow = function(targetUrl, extras, options) {

        extras = $.extend({
            isPopup: true
        }, extras);

        // 画面ID取得
        var id = owner.getFileName(targetUrl);

        options = options || {};
        options = $.extend({
            id: id,
            url: targetUrl,
            show: {
                autoShow: false,
                duration: 200,
                aniShow: 'slide-in-right'
            },
            extras: extras,
            waiting: {
                autoShow: options.autoShowWaiting || false,
                title: options.waitingTitle || '加载中...'
            }
        }, options);

        // Popup内容画面
        var contentPage = $.openWindow(options);

        // Popup加载完成
        contentPage.addEventListener("loaded", function() {
            if (options.waiting.autoShow) {
                owner.closeWaiting();
            }
            contentPage.show('slide-in-right', 200);
        });
    };

    /**
     * 预加载画面
     *
     * @param {String} url 页面ID
     * @param {Object} styles 样式
     * @param {Object} extras 参数
     */
    owner.preload = function(url, styles, extras) {
        if (owner.isNull(plus.webview.getWebviewById(url))) {
            return mui.preload({
                url: url,
                id: owner.getFileName(url),
                styles: styles,
                extras: extras
            });
        } else {
            return plus.webview.getWebviewById(url);
        }
    };

    /**
     * IOS样式选择器
     *
     * @param {Object} targetUrl
     * @param {Object} extras
     */
    owner.registerPopup = function(id, data, callback) {
        var dialog = document.createElement("div");
        dialog.setAttribute("id", id);
        dialog.setAttribute("class", "mui-popover mui-popover-action mui-popover-bottom");
        var html = "";
        html = html + '<ul class="mui-table-view">';
        for (var i = 0; i < data.length; i++) {
            html = html + '    <li class="mui-table-view-cell">';
            html = html + '        <a value="' + data[i].key + '">' + data[i].name + '</a>';
            html = html + '    </li>';
        }
        html = html + '</ul>';
        html = html + '<ul class="mui-table-view">';
        html = html + '    <li class="mui-table-view-cell">';
        html = html + '            <a value=""><b>取消</b></a>';
        html = html + '       </li>';
        html = html + '</ul>';
        dialog.innerHTML = html;
        document.body.appendChild(dialog);
        mui.each(document.querySelectorAll("#" + id + " li>a"), function(index, item) {

            item.addEventListener('tap', function() {
                var a = this,
                    parent;
                // 根据点击按钮,反推当前是哪个actionsheet
                for (parent = a.parentNode; parent != document.body; parent = parent.parentNode) {
                    if (parent.classList.contains('mui-popover-action')) {
                        break;
                    }
                }
                //关闭actionsheet
                mui('#' + parent.id).popover('toggle');
                var value = a.getAttribute("value");
                if (value != "" && callback != null) {
                    callback({
                        key: value,
                        name: a.innerHTML
                    });
                }
            });
        });
    };

    /**
     * ajax请求设定
     *
     * @param {String} url 请求路径
     * @param {Object} data 请求参数
     * @param {Function} success 成功回调函数
     * @param {Object} options 选项
     */
    owner.ajaxSettings = function(url, data, success, options) {
        if (typeof url === "object") {
            options = url;
            url = undefined;
            data = undefined;
            success = undefined;
        } else {
            options = options || {};
        }

        // 上拉加载的场合,等待对话框不显示
        var isPullupLoading = true;
        var bottomPocket = document.querySelector('.mui-pull-bottom-pocket');
        if (bottomPocket && bottomPocket.classList.contains('mui-block')) {
            isPullupLoading = false;
        }

        // 成功返回时
        var sucessCallback = function(result) {
            console.log("[ajax result]:" + JSON.stringify(result));

            if ('failure' == result.status) {
                // 不管有没有等待框都关闭一下
                owner.closeWaiting();

                // TODO 异常信息处理 请重新登录/用户不存在
                if ('W00001' == result.msg.msgCode || 'W00002' == result.msg.msgCode || 'E00004' == result.msg.msgCode) {
                    owner.clearUserInfo();
                    owner.showToast(result.msg.msgContent + ',请重新登录');
                    owner.restartApp();
                } else if ('E00001' == result.msg.msgCode || 'E00002' == result.msg.msgCode) {
                    owner.showToast(result.msg.msgContent);
                } else {
                    owner.showAlert(result.msg.msgContent);
                }
                return;
            }

            var callback = success || options.success;
            callback && callback(result);
        };

        // 异常返回时
        var errorCallback = function(xhr, type, errorThrown) {
            console.log(type + "  : " + errorThrown);
            // 不管请求前有没有打开等待框,这里都关闭一下
            owner.closeWaiting();
            // 画面有上拉刷新时,将上拉刷新状态设回去
            if (!isPullupLoading) {
                var wrapper = mui('.mui-scroll-wrapper');
                wrapper.pullRefresh().endPullupToRefresh(false);
            }
            owner.showToast('请求超时');
            var callback = options.error;
            callback && callback(xhr, type, errorThrown);
        };

        url = url || options.url;
        var headers = {};
        headers["x-phone-userid"] = owner.getSessionId(); // 用户缓存信息Key
        headers["content-type"] = "application/json";

        var settings = mui.extend({}, options);
        settings.url = base_url + url;
        settings.data = data || options.data;
        settings.dataType = options.dataType || 'json';
        settings.timeout = options.timeout || 30000;
        settings.success = sucessCallback;
        settings.error = errorCallback;
        settings.headers = headers;

        if (isPullupLoading && !options.noWaiting) {
            var completeCallback = function() {
                var callback = options.complete;
                callback && callback();
            };

            settings.complete = completeCallback;
        }
        return settings;
    };

    /**
     * 使用POST请求方式向服务器发送数据
     *
     * @param {String} url 请求路径
     * @param {Object} data 请求参数
     * @param {Function} success 成功回调函数
     * @param {Object} options 选项
     */
    owner.ajaxPost = function(url, data, success, options) {
        // 检查网络
        if (!owner.checkNetwork()) {
            AppUtils.showToast("网络还没打开嘛,快去打开,等你回来噢~");
            return;
        }
        var settings = owner.ajaxSettings(url, data, success, options);
        settings.type = 'POST';
        return $.ajax(settings);
    };

    /**
     * 使用GET请求方式向服务器发送数据
     *
     * @param {String} url 请求路径
     * @param {Object} data 请求参数
     * @param {Function} success 成功回调函数
     * @param {Object} options 选项
     */
    owner.ajaxGet = function(url, data, success, options) {
        // 检查网络
        if (!owner.checkNetwork()) {
            AppUtils.showToast("网络还没打开嘛,快去打开,等你回来噢~");
            return;
        }
        var settings = owner.ajaxSettings(url, data, success, options);
        return $.ajax(settings);
    };

    /**
     * 上传文件
     *
     * @param {Object} url 上传路径
     * @param {Object} options 选项
     * @param {Object} callback 回调函数
     */
    owner.uploadFile = function(url, options, callback) {
        // 上传完成
        owner.showWaiting('上传中...');
        var task = plus.uploader.createUpload(base_url + url, {
            method: "POST"
        }, function(data, status) {
            owner.closeWaiting();
            callback && callback(data, status);
        });
        task.addData("sessionId", owner.getSessionId());
        task.addFile(options.file_key, {
            key: "file"
        });
        task.start();
    };

    /**
     * 调用其它页面方法,目标页面可以通过data.detail取值
     *
     * @param {Object} view 页面
     * @param {String} functionName 方法名
     * @param {Object} data 传递参数
     */
    owner.callFunction = function(view, functionName, data) {
        var targetView = null;
        if (typeof view === 'string') {
            targetView = plus.webview.getWebviewById(view);
        } else {
            targetView = view;
        }
        if (functionName) {
            $.fire(targetView, functionName, data);
        }
    };

    /**
     * 检查网络连接
     */
    owner.checkNetwork = function() {
        // 判断网络链接
        var nt = plus.networkinfo.getCurrentType();
        switch (nt) {
            case plus.networkinfo.CONNECTION_ETHERNET:
            case plus.networkinfo.CONNECTION_WIFI:
            case plus.networkinfo.CONNECTION_CELL2G:
            case plus.networkinfo.CONNECTION_CELL3G:
            case plus.networkinfo.CONNECTION_CELL4G:
                return true;
                break;
            default:
                return false;
                break;
        }
    };

    /**
     * 拨打电话(统一安卓和IOS两边的显示)
     *
     * @param {String} phone 手机号
     */
    owner.dial = function(phone) {
        owner.showConfirm("确认拨打电话:" + phone, function(e) {
            if (e.index == 0) {

                // iOS系统
                if (mui.ios) {
                    plus.device.dial(phone, true);
                } else {
                    // 安卓系统
                    var Uri = plus.android.importClass("android.net.Uri");
                    var Intent = plus.android.importClass("android.content.Intent");
                    var number = new Uri.parse("tel:" + phone);
                    var callIntent = new Intent(Intent.ACTION_CALL, number);
                    plus.android.runtimeMainActivity().startActivity(callIntent);
                }
            }
        });
    };

    /**
     * 警告对话框
     *
     * @param {String} message 消息内容
     * @param {Function} callback 回调函数
     */
    owner.showAlert = function(message, callback) {
        $.alert(message, '提示', callback);
    };

    /**
     * 自动消失提示框
     *
     * @param {String} message 消息内容
     * @param {Object} options 调用系统控件的选项
     */
    owner.showToast = function(message, options) {
        // 特殊场合下,需要改变提示框显示方式,调用系统自带的
        if (options) {
            plus.nativeUI.toast(message, options);
        } else {
            // 一般场合调用Mui封装的,显示在底部居中2秒。
            $.toast(message);
        }
    };

    /**
     * 确认对话框
     *
     * @param {String} message 消息内容
     * @param {Function} callback 回调函数
     */
    owner.showConfirm = function(message, callback) {
        var btnArray = ['是', '否'];
        $.confirm(message, '确认', btnArray, callback);
    };

    /**
     * 弹出系统等待对话框
     *
     * @param {String} message
     */
    owner.showWaiting = function(message) {
        // 弹出系统等待对话框
        plus.nativeUI.showWaiting(message || '加载中...');
    };

    /**
     * 弹出系统等待对话框
     * @param {Number} delay 延迟数(毫秒)
     */
    owner.closeWaiting = function(delay) {
        // 关闭系统等待对话框,防止性能非常好的手机上等待框一闪而过,这里默认延迟300毫秒关闭
        setTimeout(function() {
            plus.nativeUI.closeWaiting();
        }, delay || 300);
    };

    /**
     * 应用数据保存
     *
     * @param {String} key 键
     * @param {Object} value 值
     */
    owner.setItem = function(key, value) {
        // 值是对象,自动转化为字符串
        if (typeof value === 'object') {
            plus.storage.setItem(key, JSON.stringify(value));
        } else {
            plus.storage.setItem(key, value + '');
        }
    };

    /**
     * 应用数据读取
     *
     * @param {String} key 键
     */
    owner.getItem = function(key) {
        var value = owner.esapeNull(plus.storage.getItem(key));
        try {
            return $.parseJSON(value);
        } catch (e) {
            return value;
        }
    };

    /**
     * 应用数据移除
     *
     * @param {String} key 键
     */
    owner.removeItem = function(key) {
        if (plus.storage.getItem(key)) {
            plus.storage.removeItem(key);
        }
    };

    /**
     * 移除全部缓存项目
     */
    owner.clearAllItem = function() {
        plus.storage.clear();
    };

    /**
     * 清除网页缓存
     */
    owner.clearWebCache = function() {
        // sessionStorage
        sessionStorage.clear();
        // localStorage
        localStorage.clear();
    }

    /**
     * 清除应用缓存
     */
    owner.clearAppCache = function() {
        // 不清理的缓存
        var noClearKeys = ['userInfo'];
        var contains = function(key) {
            for (var i = 0; i < noClearKeys.length; i++) {
                if (noClearKeys[i] == key) {
                    return true;
                }
            }
            return false;
        };

        var keyNames = new Array();
        for (var i = 0; i < plus.storage.getLength(); i++) {
            var keyName = plus.storage.key(i);
            console.log("clearAppCache keyName:" + keyName);
            if (!contains(keyName)) {
                plus.storage.removeItem(keyName);
            }
        }
    }

    /*!
     * =====================================================
     * 业务用共通函数
     * =====================================================
     */

    /**
     * 用户情报
     */
    owner.getUserInfo = function() {
        return $.parseJSON(plus.storage.getItem("userInfo")) || null;
    };

    /**
     * 设置用户情报
     *
     * @param {Object} data 用户情报
     */
    owner.setUserInfo = function(data) {
        plus.storage.setItem("userInfo", JSON.stringify(data));
    };

    /**
     * 清除登陆用户信息
     */
    owner.clearUserInfo = function() {
        plus.storage.removeItem('userInfo');
    }

    /**
     * 取得登录用户ID
     */
    owner.getUserId = function() {
        var userInfo = owner.getUserInfo();
        if (userInfo) {
            return userInfo.userId;
        } else {
            return "";
        }
    };

    /**
     * 取得登录用户SessionID
     */
    owner.getSessionId = function() {
        var userInfo = owner.getUserInfo();
        if (userInfo) {
            return userInfo.sessionId;
        } else {
            return "";
        }
    };

    /**
     * 用户是否登陆过
     */
    owner.hasLoginedUser = function() {
        var userInfo = owner.getUserInfo();
        if (userInfo && owner.isNotNull(userInfo.userId) && owner.isNotNull(userInfo.password)) {
            return true;
        }
        return false;
    };

    /**
     * 自动登录
     */
    owner.doAutoLogin = function() {

        var userInfo = owner.getUserInfo();
        if (!userInfo || owner.isNull(userInfo.phone)) {
            owner.createWindow('login.html');
            return;
        }

        owner.showWaiting("自动登录中...");

        var param = '{"userId":"' + userInfo.userId + '","password":"' + userInfo.password + '"}';
        owner.ajaxPost('login', param, function(data) {

            owner.closeWaiting();

            if ('success' == data.status) {

                // 用户信息
                var userInfo = data.result;

                // 保存用户信息
                owner.setUserInfo(userInfo);

                // 进入主画面
                owner.openWindow('mainFrame.html');
            } else {
                if (owner.isNotNull(data.msg)) {
                    owner.showAlert(data.msg.msgContent, function() {
                        owner.createWindow('login.html');
                    });
                } else {
                    owner.createWindow('login.html');
                }
            }
        });
    };

    /**
     * 用户无照片时的默认图片
     */
    owner.getDefaultUserPhoto = function() {
        return "images/defaultHeadPhoto.jpg";
    };

    return owner;
})(mui);

/*!
 * =====================================================
 * 画面初始化的业务封装
 * =====================================================
 */
(function($, owner) {

    var ismuiReady = false;
    var isplusReady = false;

    /**
     * 单页配置,初始化操作
     *
     * @param {Object} options 选项
     */
    owner.init = function(options) {
        $.init(options);
    };

    /**
     * mui/plus对象准备
     */
    owner.ready = function() {

        // mui/plus对象没准备好
        if (!(ismuiReady && isplusReady)) {
            return;
        }

        // 调试模式下开启日志打印
        if (plus.runtime.appid != "HBuilder") {
            plus.navigator.setLogs(false);
        }

        var fileName = owner.getFileName(location.href);
        // 加载HTML同名脚本文件
        owner.loadScript("js/" + fileName + ".js");
        // TODO 4Test please detete when APP production
        // 会影响性能的,发布时请务必删除
        var list = "";
        if (plus.webview.all()) {
            for (var i = 0; i < plus.webview.all().length; i++) {
                list = list + (i > 0 ? "," : "");
                list = list + plus.webview.all()[i].id;
            }
        }
        console.log("webview = " + plus.webview.all().length + "; list:" + list);
        // ====================== end for todo ======================
    };

    $.ready(function() {
        ismuiReady = true;
        owner.ready();
    });

    $.plusReady(function() {
        isplusReady = true;
        owner.ready();
    });

    $.back = function() {
        owner.back();
    };
})(mui, AppUtils);

转载于:https://my.oschina.net/u/2535621/blog/724976

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值