关于mui:公交年检mui项目小结

59次阅读

共计 2062 个字符,预计需要花费 6 分钟才能阅读完成。

技术总结

一、实名认证页面(RealNameAuthentication.html)

1. 相机拍照蒙层,前端不易实现
解决:用原生代码来解决的。进入拍摄界面,js 所调用函数如下(该函数蕴含网络申请)

function idCardPut(ruid, okCallback, failCallback, errorCallback) {var success = function(result) {var response = JSON.parse(result);
        if (response.meta.code === 0 && okCallback) {okCallback(response.meta, response.data)
        } else if (failCallback) {failCallback(response.meta, response.data)
        }
    }

    var failed = function(msg) {if (errorCallback)
            errorCallback(msg);
    }
    var callbackId = plus.bridge.callbackId(success, failed);
    plus.bridge.exec('ApiClient', 'idCardPut', [callbackId, '/user/auth/idcard/upload', '', ruid]);
}

二、人保购险页面(PersonalInsurancePay.html)

1. 通过领取链接所关上的页面,若未领取,无奈返回到人保购险页面
解决:关上带原生导航栏的页面(点击导航栏的按钮可返回)

    payWebview = mui.openWindow({
        id: 'pay_page',
        url: 'LoadingPage.html',
        styles: {
            titleNView: {
                style: 'transparent',
                backgroundColor: '#FFFFFF',
                titleText: '保单领取',
                titleColor: '#000000',
                autoBackButton: true,
            }
        }
    });

2. 领取接口回调的响应工夫太长(大略一分钟),采纳此办法用户体验很差
解决:采纳轮询的形式,设置一个定时器,领取链接页面加载实现后调用该定时器,每隔 2s 查问一次保单的领取状态(注:页面敞开时进行完最初一次领取状态的查问再敞开定时器)

// 设置一个定时器,点击领取按钮后,轮询领取状况
function pollingCheckPay() {setTimeout(function() {getInfoOfPolicy(gGetInfor.policy_number,checkPayCallback);
    }, 2000);
}

三、mui 的一些坑

1. 提示框的成果不行,应该是代码最初没加上’div’

 // 可能你是这样写的
 mui.alert(msg, "提醒", ['确定'], function() {})

 // 加上 'div' 才有款式,该参数是指是否应用 h5 绘制的对话框
 mui.alert(msg, "提醒", ['确定'], function() {},'div')

2.mui 的确认框 confirm 应用

mui.confirm(getConfirmMsg(val), "请确认身份信息", ["信息有误", '确认'], function(e) {if (e.index === 0) {take_photo(ruid);
                                } else if (e.index === 1) {mui.showLoading("正在加载..", "div");
                                    infoConfirm("id_card", ruid, buid);
                                }
                            }, "div")

3.mui 预加载的指标页面,不可用 mui.openWindow 传参

mui.init({
    preloadPages: [{
        id: 'PersonalInfo',
        url: 'PersonalInfo.html',
    }]
});
mui.openWindow({
    id: 'PersonalInfo',
    url: 'PersonalInfo.html',
    extras:{name:'小明'}
});

4. 适配

因为要适配至安卓 4.4(Android 4.4 是谷歌于 2013 年 11 月 1 日公布的手机操作系统。),且 6.0 之前版本的 webview 不反对 ES6,故应用 es5 纯原生开发。

我的项目播种

1. 即时和开发团队成员沟通很重要,沟通的效率会决定本人对我的项目的了解,以及开发的效率,好的沟通能够放慢开发的速度且可缩小代码更改量;
2. 我的项目开发前的筹备工作很重要,一开始未梳理分明整个页面流程,导致一开始效率较低,且开发乏力,应一开始就揭示大家开个会,理分明页面间逻辑;
3. 混合开发,一开始不分明和波及本人工作的其他人的工作的连接(如拍照页面),一开始该问和本人工作相干的人到底在做什么,大略负责的内容是什么;
4. 以测试和上线为核心很重要,本人的页面可能还有点问题,在要测试的时候应以测试为核心,若阻挡测试流程,应正文掉本人的问题代码,或先砍掉本人的有问题的性能,以便整个我的项目流程可能失常测试和失常上线;

正文完
 0