diff --git a/.gitignore b/.gitignore
index 621d0ea..edf24b6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,7 +25,6 @@
 # iOS Platform
 platforms/ios/Build/
 platforms/ios/www/
-platforms/ios/cordova/console.log
 *.xcuserdatad
 
 # Android Platform
@@ -36,7 +35,7 @@
 platforms/android/CordovaLib/build
 platforms/android/CordovaLib/gen
 platforms/android/CordovaLib/local.properties
-
+platforms/android/app/src/main/assets/www
 # wp8
 platforms/wp8/bin
 platforms/wp8/obj
diff --git a/config.xml b/config.xml
index 4eb721b..af731f8 100644
--- a/config.xml
+++ b/config.xml
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='utf-8'?>
 <widget id="com.supwisdom.dlapp" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
-    <name>dlapp</name>
+    <name short="大理市民卡">dlapp</name>
     <description>
         A sample Apache Cordova application that responds to the deviceready event.
     </description>
diff --git a/platforms/android/app/src/main/assets/www/findpwd.html b/platforms/android/app/src/main/assets/www/findpwd.html
index a538505..ea9e5d5 100644
--- a/platforms/android/app/src/main/assets/www/findpwd.html
+++ b/platforms/android/app/src/main/assets/www/findpwd.html
@@ -25,7 +25,7 @@
             <div class="weui-cell" style="padding:0 10px; "> 
                 <div class="weui-cell__hd"><label class="weui-label" style="width: 80px;font-size: 14px;">手机号</label></div>
                 <div class="weui-cell__bd">
-                    <input class="weui-input" type="number" id="phone" style="font-size: 14px;" placeholder="请输入注册的手机号" maxlength="11">
+                    <input class="weui-input" type="tel" id="phone" style="font-size: 14px;" placeholder="请输入市民卡预留的手机号" maxlength="11">
                 </div>
             </div>
             <div class="weui-cell weui-cell_vcode" style="padding:0 10px; ">
@@ -33,7 +33,7 @@
                     <label class="weui-label" style="width: 80px;font-size: 14px;">验证码</label>
                 </div>
                 <div class="weui-cell__bd">
-                    <input class="weui-input" type="number" id="code" style="font-size: 14px;" placeholder="请输入验证码" maxlength="6">
+                    <input class="weui-input" type="tel" id="code" style="font-size: 14px;" placeholder="请输入验证码" maxlength="6">
                 </div>
                 <div class="weui-cell__ft">
                     <button class="weui-vcode-btn" onclick="app.getCode()" id="codebtn" style="width: 100px;height: 1rem;font-size: 14px;">获取验证码</button>
@@ -41,14 +41,14 @@
             </div>
         </div>
         <section class="aui-content-padded" style="margin-top: 30px;">
-            <div class="aui-btn aui-btn-block aui-btn-info" tapmode onclick="app.doFind()">下一步</div>
+            <div class="aui-btn aui-btn-block aui-btn-info" tapmode onclick="app.doRegister()">下一步</div>
         </section>
     </div>
 </body>
 
 </html>
 <script type="text/javascript" src="cordova.js"></script>
-<script type="text/javascript" src="js/register.js"></script>
 <script type="text/javascript" src="js/lib/jquery-2.1.4.js"></script>
 <script type="text/javascript" src="js/lib/jquery-weui.js"></script>
-<script type="text/javascript" src="js/server.js"></script>
\ No newline at end of file
+<script type="text/javascript" src="js/server.js"></script>
+<script type="text/javascript" src="js/findpwd.js"></script>
\ No newline at end of file
diff --git a/platforms/android/app/src/main/assets/www/js/card.js b/platforms/android/app/src/main/assets/www/js/card.js
index 9e3fe81..0c0a91e 100644
--- a/platforms/android/app/src/main/assets/www/js/card.js
+++ b/platforms/android/app/src/main/assets/www/js/card.js
@@ -27,20 +27,13 @@
             if (ret.buttonIndex == 2) {
                 $.showLoading("正在处理");
                 var param={
-                    "pwd":pwd
+                    "paypwd":pwd
                 }
                 V1CardLost(param,function(ok,ret){
                     if(ok){
                         $.hideLoading();
                         if(ret.code==200){
-                             window.localStorage.removeItem("randomcode"); 
-                             var signed = window.localStorage.getItem("signed"); 
-                             window.localStorage.setItem("paypwdset",ret.paypwdset); 
-                             if(isEmpty(signed)||signed!='yes'){
-                                window.location='signxy.html'   
-                             }else{
-                                window.location='main.html'   
-                             }
+                             $.alert("卡片挂失成功", "提示");
                         }else{
                             $.alert(ret.msg, "错误");
                         } 
diff --git a/platforms/android/app/src/main/assets/www/js/index.js b/platforms/android/app/src/main/assets/www/js/index.js
index a2381c8..ba4ea86 100644
--- a/platforms/android/app/src/main/assets/www/js/index.js
+++ b/platforms/android/app/src/main/assets/www/js/index.js
@@ -41,10 +41,7 @@
                         if(ret.now-t>1000*60*10){
                              window.location = "login.html";
                         }else{
-                             window.localStorage.setItem("userid",ret.userid);
-                             window.localStorage.setItem("signed",ret.signed); 
-                             window.localStorage.setItem("paypwdset",ret.paypwdset);
-                             window.localStorage.setItem("name",ret.name); 
+                             
                              window.location = "main.html";
                         }
                     }
diff --git a/platforms/android/app/src/main/assets/www/js/main.js b/platforms/android/app/src/main/assets/www/js/main.js
index a5b788d..87d6f53 100644
--- a/platforms/android/app/src/main/assets/www/js/main.js
+++ b/platforms/android/app/src/main/assets/www/js/main.js
@@ -7,13 +7,14 @@
 
     onDeviceReady: function() {
         var uid = window.localStorage.getItem("token");
+        console.log(CURRENT_INDEX);
         $('#scanBtn').click(function() {
-             window.location = "scan.html";
-            /*app.checkBefore(function() {
+            //window.location = "scan.html";
+            app.checkBefore(function() {
                 app.checkOther(function() {
                     window.location = "scan.html";
                 })
-            })*/
+            })
         });
         $('#qrcodeBtn').click(function() {
             app.checkBefore(function() {
@@ -53,62 +54,75 @@
     },
     initData: function() {
         this.loadBill()
-        this.initView();
+
     },
-    loadBill:function(){
+    loadBill: function() {
         $("#loaddata").show()
         $("#nodata").hide();
-        var param={
-            "pageno":1
+        var param = {
+            "pageno": 1
         }
-        V1Bills(param,function(ok,ret){
-            if(ok){
+        V1Bills(param, function(ok, ret) {
+            if (ok) {
                 console.log(ret)
-                if(ret.code==200){
-                    $("#maingt").text(ret.t+"！")
+                if (ret.code == 200) {
+                    $("#maingt").text(ret.t + "！")
                     $("#user-amount").text(ret.amount)
                     $("#user-point").text(ret.point)
-                    if(ret.page&&ret.page.count>0){
+                    if (ret.needrebind) {
+                        window.localStorage.removeItem("userid");
+                    } else {
+                        window.localStorage.setItem("userid", ret.userid);
+                    }
+                    window.localStorage.setItem("signed", ret.signed);
+                    window.localStorage.setItem("paypwdset", ret.paypwdset);
+                    window.localStorage.setItem("name", ret.name);
+                    if (ret.page && ret.page.count > 0) {
                         GLOBAL_TODAY = ret.today;
                         GLOBAL_YESTERDAY = ret.yesterday;
                         app.initBillView(ret.page)
-                    }else{
+                        app.initView();
+                    } else {
                         $("#loaddata").hide()
                         $("#nodatahint").text("暂无数据")
-                        $("#nodata").show(); 
-                    }    
-                }else{
+                        $("#nodata").show();
+                        app.initView();
+                    }
+                } else {
                     $("#loaddata").hide()
                     $("#nodatahint").text("数据加载异常")
-                    $("#nodata").show(); 
+                    $("#nodata").show();
+                    app.initView();
                 }
-            }else{
+            } else {
                 $("#loaddata").hide()
                 $("#nodatahint").text("请求数据失败")
                 $("#nodata").show();
-            }            
+                app.initView();
+            }
         })
     },
 
-    initBillView:function(page){
-        var html ='';
-        for(var i=0;i<page.data.length;i++){
-            var bean=page.data[i]
-            html +='<div class="aui-card-list-header aui-card-list-user" onclick="app.toBillDetail(\''+bean.refno+'\')">';
-            html +='<div class="aui-card-list-user-avatar"><img src="img/icon_meal.png" class="aui-margin-r-10 aui-img-round" />';
-            html +='</div><div class="aui-card-list-user-name">';
-            html +='<div>'+bean.transdesc+'</div>';
-            if(bean.tradeflag=='in'){
-                html +='<div class="aui-list-item-right">+'+bean.amount+'</div>';
-            }else{
-                html +='<div class="aui-list-item-right">'+bean.amount+'</div>';
+    initBillView: function(page) {
+        var html = '';
+        for (var i = 0; i < page.data.length; i++) {
+            var bean = page.data[i]
+            html += '<div class="aui-card-list-header aui-card-list-user" onclick="app.toBillDetail(\'' + bean.refno + '\')">';
+            html += '<div class="aui-card-list-user-avatar"><img src="img/icon_meal.png" class="aui-margin-r-10 aui-img-round" />';
+            html += '</div><div class="aui-card-list-user-name">';
+            html += '<div>' + bean.transdesc + '</div>';
+            if (bean.tradeflag == 'in') {
+                html += '<div class="aui-list-item-right">+' + bean.amount + '</div>';
+            } else {
+                html += '<div class="aui-list-item-right">' + bean.amount + '</div>';
             }
-            html +='</div><div class="aui-card-list-user-info">'+formatDateNoYear(bean.transdate,bean.transtime)+'</div></div>';
+            html += '</div><div class="aui-card-list-user-info">' + formatDateNoYear(bean.transdate, bean.transtime) + '</div></div>';
         }
         $("#billcontent").html(html);
         $("#loaddata").hide()
-        $("#nodata").hide(); 
-        $("#billcontent").show(); 
+        $("#nodata").hide();
+        $("#billcontent").show();
+        
     },
     initView: function() {
         var userid = window.localStorage.getItem("userid");
@@ -127,14 +141,14 @@
             $("#usersign").text("已签约");
             $("usersign").css("color", "#757575");
         }
-        var phone =  window.localStorage.getItem("phoneX");
-        if(!isEmpty(phone)){
+        var phone = window.localStorage.getItem("phoneX");
+        if (!isEmpty(phone)) {
             $("#userphone").text(phone)
         }
-        var name =  window.localStorage.getItem("name");
-        if(isEmpty(name)){
+        var name = window.localStorage.getItem("name");
+        if (isEmpty(name)) {
             $("#username").text("匿名")
-        }else{
+        } else {
             $("#username").text(name)
             $("#homename").text(name)
         }
@@ -196,9 +210,20 @@
             }
         }
     },
+    toSign:function(){
+        window.location = 'signxycheck.html'
+    },
     toBillDetail: function(refno) {
-        window.localStorage.setItem("currentrefno",refno);
-        window.location='billdetail.html';
+        window.localStorage.setItem("currentrefno", refno);
+        window.location = 'billdetail.html';
+    },
+    toCard:function(){
+        var userid = window.localStorage.getItem("userid");
+        if (isEmpty(userid)) {
+            window.location = 'bindcard.html'
+        }else{
+            window.location = 'cardinfor.html'
+        }
     }
 };
 app.initialize();
\ No newline at end of file
diff --git a/platforms/android/app/src/main/assets/www/js/paypwdset.js b/platforms/android/app/src/main/assets/www/js/paypwdset.js
index 0fc1c95..8824574 100644
--- a/platforms/android/app/src/main/assets/www/js/paypwdset.js
+++ b/platforms/android/app/src/main/assets/www/js/paypwdset.js
@@ -45,10 +45,17 @@
                      window.localStorage.removeItem("randomcode"); 
                      var signed = window.localStorage.getItem("signed"); 
                      window.localStorage.setItem("paypwdset",ret.paypwdset); 
+                     window.localStorage.removeItem("paypwdtype"); 
                      if(isEmpty(signed)||signed!='yes'){
                         window.location='signxy.html'   
                      }else{
-                        window.location='main.html'   
+                        $.alert("支付密码设置成功", "提示", function() {
+                            if(paypwdtype=='find'){
+                                window.location='security.html'   
+                            }else{
+                                window.location='main.html'   
+                            }
+                        });
                      }
                 }else{
                     $.alert(ret.msg, "错误");
diff --git a/platforms/android/app/src/main/assets/www/js/scan.js b/platforms/android/app/src/main/assets/www/js/scan.js
index 07a89fc..e75eba8 100644
--- a/platforms/android/app/src/main/assets/www/js/scan.js
+++ b/platforms/android/app/src/main/assets/www/js/scan.js
@@ -15,6 +15,7 @@
         } else {
             $.alert('插件加载失败');
         }
+        //showRet("http://ykt.supwisdom.com:9116/epay/wxpage/index")
         function onDone(err, status) {
             if (err) {
                 console.log(err);
@@ -24,6 +25,7 @@
                 //绑定扫描监听
                 // `QRScanner.cancelScan()` is called.
                 QRScanner.scan(displayContents);
+
                 function displayContents(err, text) {
                     if (err) {
                         // an error occurred, or the scan was canceled (error code `6`)
@@ -31,17 +33,18 @@
                     } else {
                         // The scan completed, display the contents of the QR code:
                         //$.alert(text, '提示');
-                        showRet(text)
+                        showRet(text);
+                        QRScanner.destroy();
                     }
                 }
                 //开始扫描，需要将页面的背景设置成透明
                 QRScanner.show();
-                console.log("QRScanner.scan");   
+                console.log("QRScanner.scan");
             } else if (status.denied) {
                 // The video preview will remain black, and scanning is disabled. We can
                 // try to ask the user to change their mind, but we'll have to send them
                 // to their device settings with `QRScanner.openSettings()`.
-               $.alert('无法请求道相机权限，请在设置中开启', '提示');
+                $.alert('无法请求道相机权限，请在设置中开启', '提示');
             } else {
                 // we didn't get permission, but we didn't get permanently denied. (On
                 // Android, a denial isn't permanent unless the user checks the "Don't
@@ -53,7 +56,7 @@
     },
     receivedEvent: function() {
         var light = false;
-        $('#lightBtn').click(function () {
+        $('#lightBtn').click(function() {
             if (light) {
                 QRScanner.enableLight();
             } else {
@@ -62,98 +65,65 @@
             light = !light;
         });
     },
-    goPage:function(){
+    goPage: function() {
         QRScanner.destroy();
-        window.location="main.html"
+        window.location = "main.html"
     }
 };
 app.initialize();
 var inAppBrowserRef;
-
 function showRet(url) {
-
-    var target = "_blank";
-
-    var options = "location=yes,hidden=yes,beforeload=yes";
-
-    inAppBrowserRef = cordova.InAppBrowser.open(url, target, options);
-
+    if(isEmpty(url)){
+        return;
+    }
+    var userid = window.localStorage.getItem("userid"); 
+    if(url.indexOf("?")>0){
+        url=url+'&uid='+userid;
+    }else{
+        url=url+'?uid='+userid;
+    }
+    inAppBrowserRef = cordova.ThemeableBrowser.open(url, '_blank', {
+        statusbar: {
+            color: '#03a9f4ff'
+        },
+        toolbar: {
+            height: 44,
+            color: '#03a9f4ff'
+        },
+        title: {
+            color: '#ffffffff',
+            showPageTitle: true
+        },
+        backButton: {
+            image: 'back.png',
+            imagePressed: 'back.png',
+            align: 'left',
+            event: 'backPressed'
+        },
+        closeButton: {
+            image: 'close.png',
+            imagePressed: 'close.png',
+            align: 'left',
+            event: 'closePressed'
+        },
+        backButtonCanClose: true
+    }).addEventListener('backPressed', function(e) {
+        //alert('back pressed');
+    }).addEventListener('closePressed', function(e) {
+        //alert('closePressed pressed');
+        inAppBrowserRef.close();
+        window.location = "main.html"
+    }).addEventListener(cordova.ThemeableBrowser.EVT_ERR, function(e) {
+        console.error(e.message);
+    }).addEventListener(cordova.ThemeableBrowser.EVT_WRN, function(e) {
+        console.log(e.message);
+    });
     inAppBrowserRef.addEventListener('loadstart', loadStartCallBack);
-
-    inAppBrowserRef.addEventListener('loadstop', loadStopCallBack);
-
-    inAppBrowserRef.addEventListener('loaderror', loadErrorCallBack);
-
     inAppBrowserRef.addEventListener('beforeload', beforeloadCallBack);
-
-    inAppBrowserRef.addEventListener('message', messageCallBack);
 }
-function loadStartCallBack() {
-
-    $('#status-message').text("loading please wait ...");
-
+function loadStartCallBack(params,callback) {
+    console.log("1",params.url);
 }
-
-function loadStopCallBack() {
-
-    if (inAppBrowserRef != undefined) {
-
-        inAppBrowserRef.insertCSS({ code: "body{font-size: 25px;" });
-
-        inAppBrowserRef.executeScript({ code: "\
-            var message = 'this is the message';\
-            var messageObj = {my_message: message};\
-            var stringifiedMessageObj = JSON.stringify(messageObj);\
-            webkit.messageHandlers.cordova_iab.postMessage(stringifiedMessageObj);"
-        });
-
-        $('#status-message').text("");
-
-        inAppBrowserRef.show();
-    }
-
-}
-
-function loadErrorCallBack(params) {
-
-    $('#status-message').text("");
-
-    var scriptErrorMesssage =
-       "alert('Sorry we cannot open that page. Message from the server is : "
-       + params.message + "');"
-
-    inAppBrowserRef.executeScript({ code: scriptErrorMesssage }, executeScriptCallBack);
-
-    inAppBrowserRef.close();
-
-    inAppBrowserRef = undefined;
-
-}
-
-function executeScriptCallBack(params) {
-
-    if (params[0] == null) {
-
-        $('#status-message').text(
-           "Sorry we couldn't open that page. Message from the server is : '"
-           + params.message + "'");
-    }
-
-}
-
-function beforeloadCallBack(params, callback) {
-
-    if (params.url.startsWith("http://www.example.com/")) {
-
-        // Load this URL in the inAppBrowser.
-        callback(params.url);
-    } else {
-
-        // The callback is not invoked, so the page will not be loaded.
-        $('#status-message').text("This browser only opens pages on http://www.example.com/");
-    }
-}
-
-function messageCallBack(params){
-    $('#status-message').text("message received: "+params.data.my_message);
+function beforeloadCallBack(params,callback) {
+    console.log("2",params.url);
 }
diff --git a/platforms/android/app/src/main/assets/www/js/security.js b/platforms/android/app/src/main/assets/www/js/security.js
index 441d577..3586930 100644
--- a/platforms/android/app/src/main/assets/www/js/security.js
+++ b/platforms/android/app/src/main/assets/www/js/security.js
@@ -10,8 +10,15 @@
         var phone =  window.localStorage.getItem("phoneX");
         
     },
-    doNext: function() {
-       
+    editPwd: function() {
+       window.location = "editpwd.html";
+    },
+    toPayPwd: function() {
+       window.location = "paypwdmng.html";
+    },
+    logout:function(){
+        window.localStorage.removeItem("token");
+        window.location = "login.html";
     }
 };
 app.initialize();
diff --git a/platforms/android/app/src/main/assets/www/js/server.js b/platforms/android/app/src/main/assets/www/js/server.js
index 96d5023..3194de9 100644
--- a/platforms/android/app/src/main/assets/www/js/server.js
+++ b/platforms/android/app/src/main/assets/www/js/server.js
@@ -2,9 +2,17 @@
 var SERVER = "";
 var GLOBAL_TODAY="";
 var GLOBAL_YESTERDAY="";
+var CURRENT_INDEX=1;
 if (dev) {
     SERVER = "http://172.28.43.3:8099/payapi/mobileapi";
 }
+function V1Cardinfor(callback) {
+    ajaxPost("/v1/cardinfor", {}, callback)
+}
+
+function V1Pwdset(param,callback) {
+    ajaxPost("/v1/pwdset", param, callback)
+}
 
 function V1Billdetail(param,callback) {
     ajaxPost("/v1/billdetail", param, callback)
@@ -105,7 +113,7 @@
         dataType: "json",
         data: param,
         crossDomain: true,
-        timeout: 5000,
+        timeout: 10000,
         headers: hd,
         success: function(result) {
             if (callback) {
diff --git a/platforms/android/app/src/main/assets/www/js/signxy.js b/platforms/android/app/src/main/assets/www/js/signxy.js
index b259a5b..f97f3d4 100644
--- a/platforms/android/app/src/main/assets/www/js/signxy.js
+++ b/platforms/android/app/src/main/assets/www/js/signxy.js
@@ -13,7 +13,12 @@
                 $.hideLoading(); 
                 if(ret.code==200){
                     $("#content").html(ret.page);
-                    $("#btn").show();  
+                    if(isEmpty(ret.signed)||ret.signed!='yes'){
+                        $("#btn").show();   
+                        $("#content").css("bottom","135px");
+                    }else{
+                        $("#content").css("bottom","10px");
+                    }
                 }else{
                     $.alert(ret.msg, "错误");
                 }
diff --git a/platforms/android/app/src/main/assets/www/main.html b/platforms/android/app/src/main/assets/www/main.html
index 2cb4444..57c416c 100644
--- a/platforms/android/app/src/main/assets/www/main.html
+++ b/platforms/android/app/src/main/assets/www/main.html
@@ -209,7 +209,7 @@
         </section>
         <section class="aui-content">
             <ul class="aui-list aui-list-in aui-margin-b-15">
-                <li class="aui-list-item">
+                <li class="aui-list-item" onclick="app.toCard()">
                     <div class="aui-list-item-label-icon">
                         <i class="aui-iconfont aui-icon-cert aui-text-info"></i>
                     </div>
@@ -218,7 +218,7 @@
                         <div class="aui-list-item-right" id="userbank"></div>
                     </div>
                 </li>
-                <li class="aui-list-item">
+                <li class="aui-list-item" onclick="app.toSign()">
                     <div class="aui-list-item-label-icon">
                         <i class="aui-iconfont aui-icon-pencil aui-text-danger"></i>
                     </div>
@@ -261,7 +261,6 @@
 var tab = new auiTab({
     element: document.getElementById("footer"),
 }, function(ret) {
-    console.log(ret)
     if (ret.index == 1) {
         $("#main1").show();
         $("#main2").hide();
diff --git a/platforms/android/app/src/main/assets/www/scan.html b/platforms/android/app/src/main/assets/www/scan.html
index 80b62bb..9907fa0 100644
--- a/platforms/android/app/src/main/assets/www/scan.html
+++ b/platforms/android/app/src/main/assets/www/scan.html
@@ -20,8 +20,8 @@
             <span class="aui-iconfont aui-icon-left"></span>
         </a>
         <div class="aui-title">扫一扫</div>
-        <a class="aui-pull-right aui-btn aui-btn-outlined">
-            <span class="aui-iconfont aui-icon-search" id="lightBtn" ></span>
+        <a class="aui-pull-right aui-btn " id="lightBtn">
+            <img src="img/light.png">
         </a>
     </header>
     <div class="qrscanner">
diff --git a/platforms/android/app/src/main/assets/www/security.html b/platforms/android/app/src/main/assets/www/security.html
index 9cc54d3..d9811ec 100644
--- a/platforms/android/app/src/main/assets/www/security.html
+++ b/platforms/android/app/src/main/assets/www/security.html
@@ -22,7 +22,7 @@
     </header>
     <section class="aui-content aui-margin-b-15 aui-margin-t-10">
         <ul class="aui-list aui-list-in aui-margin-t-10 ">
-            <li class="aui-list-item">
+            <li class="aui-list-item" onclick="app.editPwd()">
                 <div class="aui-list-item-label-icon">
                     <i class="aui-iconfont aui-icon-lock aui-text-info"></i>
                 </div>
@@ -31,7 +31,7 @@
                     <div class="aui-list-item-right"></div>
                 </div>
             </li>
-            <li class="aui-list-item">
+            <li class="aui-list-item" onclick="app.toPayPwd()">
                 <div class="aui-list-item-label-icon">
                     <i class="aui-iconfont aui-icon-pencil aui-text-danger"></i>
                 </div>
@@ -41,6 +41,9 @@
                 </div>
             </li>
         </ul>
+         <div style="padding: 20px;margin-top: 40px;">
+            <a href="javascript:app.logout();" class="weui-btn weui-btn_warn">退出登录</a>
+        </div>
     </section>
 </body>
 
diff --git a/platforms/android/app/src/main/res/values/strings.xml b/platforms/android/app/src/main/res/values/strings.xml
index d4d339a..e68e2c4 100644
--- a/platforms/android/app/src/main/res/values/strings.xml
+++ b/platforms/android/app/src/main/res/values/strings.xml
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='utf-8'?>
 <resources>
     <string name="app_name">dlapp</string>
-    <string name="launcher_name">@string/app_name</string>
+    <string name="launcher_name">大理APP</string>
     <string name="activity_name">@string/launcher_name</string>
 </resources>
diff --git a/platforms/android/app/src/main/res/xml/config.xml b/platforms/android/app/src/main/res/xml/config.xml
index 3be6168..0bff711 100644
--- a/platforms/android/app/src/main/res/xml/config.xml
+++ b/platforms/android/app/src/main/res/xml/config.xml
@@ -34,7 +34,7 @@
     <feature name="ThemeableBrowser">
         <param name="android-package" value="com.initialxy.cordova.themeablebrowser.ThemeableBrowser" />
     </feature>
-    <name>dlapp</name>
+    <name short="大理APP">dlapp</name>
     <description>
         A sample Apache Cordova application that responds to the deviceready event.
     </description>
diff --git a/platforms/browser/config.xml b/platforms/browser/config.xml
index a7be4bc..df4c7f6 100644
--- a/platforms/browser/config.xml
+++ b/platforms/browser/config.xml
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='utf-8'?>
 <widget id="com.supwisdom.dlapp" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
-    <name>dlapp</name>
+    <name short="大理APP">dlapp</name>
     <description>
         A sample Apache Cordova application that responds to the deviceready event.
     </description>
diff --git a/platforms/ios/dlapp.xcarchive/Info.plist b/platforms/ios/dlapp.xcarchive/Info.plist
index ae2c172..1ea4592 100644
--- a/platforms/ios/dlapp.xcarchive/Info.plist
+++ b/platforms/ios/dlapp.xcarchive/Info.plist
@@ -20,7 +20,7 @@
 	<key>ArchiveVersion</key>
 	<integer>2</integer>
 	<key>CreationDate</key>
-	<date>2019-07-10T07:54:28Z</date>
+	<date>2019-07-10T08:13:18Z</date>
 	<key>Name</key>
 	<string>dlapp</string>
 	<key>SchemeName</key>
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Assets.car b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Assets.car
index 6f3a3a9..4dcb824 100644
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Assets.car
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Assets.car
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib
index 7f4b36a..4265641 100644
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib
index a974fba..450a882 100644
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftAVFoundation.dylib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftAVFoundation.dylib
index a0b9479..7bc9f2f 100755
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftAVFoundation.dylib
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftAVFoundation.dylib
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCore.dylib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCore.dylib
index 2e769e5..672e105 100755
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCore.dylib
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCore.dylib
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreAudio.dylib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreAudio.dylib
index b301244..8827440 100755
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreAudio.dylib
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreAudio.dylib
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreFoundation.dylib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreFoundation.dylib
index 35952fc..f2a71e5 100755
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreFoundation.dylib
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreFoundation.dylib
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreGraphics.dylib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreGraphics.dylib
index 372d21d..4d86670 100755
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreGraphics.dylib
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreGraphics.dylib
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreImage.dylib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreImage.dylib
index e1e0c91..60cd94f 100755
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreImage.dylib
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreImage.dylib
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreMedia.dylib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreMedia.dylib
index 6bb4de4..8728cf9 100755
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreMedia.dylib
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreMedia.dylib
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftDarwin.dylib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftDarwin.dylib
index f7162f8..2c674dd 100755
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftDarwin.dylib
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftDarwin.dylib
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftDispatch.dylib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftDispatch.dylib
index 7a87a05..1847643 100755
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftDispatch.dylib
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftDispatch.dylib
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftFoundation.dylib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftFoundation.dylib
index 437a5b6..229b24b 100755
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftFoundation.dylib
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftFoundation.dylib
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftMetal.dylib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftMetal.dylib
index 15d0acf..2506dfc 100755
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftMetal.dylib
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftMetal.dylib
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftObjectiveC.dylib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftObjectiveC.dylib
index 4bce6fa..4df4261 100755
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftObjectiveC.dylib
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftObjectiveC.dylib
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftQuartzCore.dylib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftQuartzCore.dylib
index 57bcf31..0ac42bb 100755
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftQuartzCore.dylib
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftQuartzCore.dylib
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftSwiftOnoneSupport.dylib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftSwiftOnoneSupport.dylib
index 4117f2a..3234957 100755
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftSwiftOnoneSupport.dylib
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftSwiftOnoneSupport.dylib
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftUIKit.dylib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftUIKit.dylib
index 6eb3de8..c884ecf 100755
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftUIKit.dylib
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftUIKit.dylib
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftos.dylib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftos.dylib
index c398059..d331ee9 100755
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftos.dylib
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftos.dylib
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftsimd.dylib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftsimd.dylib
index 166120d..cfdce4f 100755
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftsimd.dylib
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftsimd.dylib
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Info.plist b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Info.plist
index 7072b7a..ff3d497 100644
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Info.plist
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Info.plist
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/MainViewController.nib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/MainViewController.nib
index 50fcf8f..1ab9c60 100644
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/MainViewController.nib
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/MainViewController.nib
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/_CodeSignature/CodeResources b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/_CodeSignature/CodeResources
index 38959cc..35f4677 100644
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/_CodeSignature/CodeResources
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/_CodeSignature/CodeResources
@@ -102,11 +102,11 @@
 		</data>
 		<key>Assets.car</key>
 		<data>
-		T757ffQVmm8esfKqnkpldn+gA+M=
+		M9y4B5f85UdyeyDoa4mw7YNN6Bk=
 		</data>
 		<key>CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib</key>
 		<data>
-		te5vytZWHWAPLMPk0EfV2v2GOck=
+		DpfAvIjL3kCSfefgV671itSU7Z4=
 		</data>
 		<key>CDVLaunchScreen.storyboardc/Info.plist</key>
 		<data>
@@ -114,79 +114,79 @@
 		</data>
 		<key>CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib</key>
 		<data>
-		Qc8jkXDDI2czWCVnjtQcBQ3u3Cc=
+		iq85hsiCVgzh8ud0xUY8MMrk/so=
 		</data>
 		<key>Frameworks/libswiftAVFoundation.dylib</key>
 		<data>
-		hQRQa4h2/Ke/Ec8h8zQINABOX+Y=
+		MyWbgH+LclNwvYiky83lqJD2UnI=
 		</data>
 		<key>Frameworks/libswiftCore.dylib</key>
 		<data>
-		KFt3m2PXf7KLtlPH/dFjRxZu/Dc=
+		4zn76y1y9gHtnbnA9xAJN3gTjfc=
 		</data>
 		<key>Frameworks/libswiftCoreAudio.dylib</key>
 		<data>
-		ylfqEtpPpH5bCkjEGK/7yn1I6Ts=
+		k5MV4RdAF+U9IPs23qAxEkQ1zSY=
 		</data>
 		<key>Frameworks/libswiftCoreFoundation.dylib</key>
 		<data>
-		dOJd2grXqGYhIrz9CKpe2OXCdo0=
+		1M+6tKeVk9K8z4pcj76/nX0Orp4=
 		</data>
 		<key>Frameworks/libswiftCoreGraphics.dylib</key>
 		<data>
-		oKCWaSlRFg+oK78osXFZfQ3uDuI=
+		uqFMn/wUXGsLEyNEkJDsUvqV+1Y=
 		</data>
 		<key>Frameworks/libswiftCoreImage.dylib</key>
 		<data>
-		dG50HETdCOQfPRzU0Ic37vCc/9o=
+		pSXJcUvGBwZSSzpqxgZO9fYQpSQ=
 		</data>
 		<key>Frameworks/libswiftCoreMedia.dylib</key>
 		<data>
-		odFZruKElA+9a+XkB1apq2pyAKw=
+		1bCvwJsFxbLj3ouPYWb1vBRiF2s=
 		</data>
 		<key>Frameworks/libswiftDarwin.dylib</key>
 		<data>
-		Ekbogs5rZiDaOKSVVOIKmv8yP2w=
+		0eedFvcTWdCm0JCdXXbYsjbQu2k=
 		</data>
 		<key>Frameworks/libswiftDispatch.dylib</key>
 		<data>
-		KZ/cE5kKCjjALrWnzi/IZiYkeBE=
+		nEKmyjjqaE/4KcHgQ94WgKlVbaU=
 		</data>
 		<key>Frameworks/libswiftFoundation.dylib</key>
 		<data>
-		D4CHUkxS6fDieQm0JXhasUkIO3c=
+		cmNqhtGBh6e4ZTYjiJLbhuHRdc0=
 		</data>
 		<key>Frameworks/libswiftMetal.dylib</key>
 		<data>
-		DL0GBvhxifsCpExV32K3d37vZMk=
+		PAm/ukk7wQ4Z7Ys9ul+Hq4PJP+E=
 		</data>
 		<key>Frameworks/libswiftObjectiveC.dylib</key>
 		<data>
-		X5Lb3FE34KNAL5snNyu8I7MppoE=
+		3E9JJ2xzHu8f2j5JZYfoZ+x1jMU=
 		</data>
 		<key>Frameworks/libswiftQuartzCore.dylib</key>
 		<data>
-		wpPfT2ZYqDtV8LC7tvoOz5FIvWo=
+		gU++xPxoA7pH+w+RtHN0v1dAmqw=
 		</data>
 		<key>Frameworks/libswiftSwiftOnoneSupport.dylib</key>
 		<data>
-		D38ZqW/kqLjSdad8fvWunNuDSGs=
+		LGWUYmpGsrLP9agzpGxQh2sK3O8=
 		</data>
 		<key>Frameworks/libswiftUIKit.dylib</key>
 		<data>
-		5wMkr51pDRH8PDzP3Bjqk4Qy4cs=
+		9LyLZC3F/xaRK32VipuXkcFiy4A=
 		</data>
 		<key>Frameworks/libswiftos.dylib</key>
 		<data>
-		Vnurcvfwt3SW/agfJlOdUi1diDY=
+		z2KM6mxXHkBs94Ln+AnUxg3KoDo=
 		</data>
 		<key>Frameworks/libswiftsimd.dylib</key>
 		<data>
-		6Z28ZZWvGEuFgIwB9dKwPVtlKfQ=
+		qDj17iVa9j3JsBh2vsfJcrvT19g=
 		</data>
 		<key>Info.plist</key>
 		<data>
-		A4Mfmv7TuPjhah3GagYVHZqgqJE=
+		Ec2xR2CoDXFQNiK5N3/3pfMREdY=
 		</data>
 		<key>LaunchImage-1100-Landscape-2436h@3x.png</key>
 		<data>
@@ -230,7 +230,7 @@
 		</data>
 		<key>MainViewController.nib</key>
 		<data>
-		HGQoZCqsnAcpXpUU2Euwer6XpSk=
+		C9CLtoiVDlYPacBkIs+hN8qWL2w=
 		</data>
 		<key>PkgInfo</key>
 		<data>
@@ -238,7 +238,7 @@
 		</data>
 		<key>config.xml</key>
 		<data>
-		4Ey/jpgwhwU4OCZf57u3NVkF1xQ=
+		AjI+ESkl36HBKYsk8ULo6f9LwCw=
 		</data>
 		<key>embedded.mobileprovision</key>
 		<data>
@@ -578,7 +578,7 @@
 		</data>
 		<key>www/js/scan.js</key>
 		<data>
-		FahF/fMDsR1+zrs4BFASK2HvtUE=
+		xRDtmYCYmFtZu+H1/SjTBlennsM=
 		</data>
 		<key>www/js/security.js</key>
 		<data>
@@ -1347,22 +1347,22 @@
 		<dict>
 			<key>hash</key>
 			<data>
-			T757ffQVmm8esfKqnkpldn+gA+M=
+			M9y4B5f85UdyeyDoa4mw7YNN6Bk=
 			</data>
 			<key>hash2</key>
 			<data>
-			Ku+cDs59/HjYJJpja26TQyeiItrJ+8ZlbToTlVWHYiQ=
+			duad8nu5wyFRXbyfel2nmGPHnx+Llq1pcjbhdANANHw=
 			</data>
 		</dict>
 		<key>CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib</key>
 		<dict>
 			<key>hash</key>
 			<data>
-			te5vytZWHWAPLMPk0EfV2v2GOck=
+			DpfAvIjL3kCSfefgV671itSU7Z4=
 			</data>
 			<key>hash2</key>
 			<data>
-			Aw1RArZ9rOj1lisqSjDWcxhUzEEqIzLYXUopbZW5Etg=
+			9WZh89T9f9Hw1Fl+v0/Uob2o7H9VJAhl9TTos0k6oHo=
 			</data>
 		</dict>
 		<key>CDVLaunchScreen.storyboardc/Info.plist</key>
@@ -1380,198 +1380,198 @@
 		<dict>
 			<key>hash</key>
 			<data>
-			Qc8jkXDDI2czWCVnjtQcBQ3u3Cc=
+			iq85hsiCVgzh8ud0xUY8MMrk/so=
 			</data>
 			<key>hash2</key>
 			<data>
-			vF+g3k9pp/g5XjaiGdk0xQgf9meorwXFLc9Z0O/jJj4=
+			ew0r9e3KiNvhfbon3lG36Fsog5H6JlAavyDmCe+DJJ0=
 			</data>
 		</dict>
 		<key>Frameworks/libswiftAVFoundation.dylib</key>
 		<dict>
 			<key>hash</key>
 			<data>
-			hQRQa4h2/Ke/Ec8h8zQINABOX+Y=
+			MyWbgH+LclNwvYiky83lqJD2UnI=
 			</data>
 			<key>hash2</key>
 			<data>
-			h4BQUX9E7/EcPnvpVs69T6Kc9rAeGMtwGTJQWg6wjoc=
+			IjpjjsSxhJkjtYt0IACD6PCrlMEsP/rFQrn+PeDRmkw=
 			</data>
 		</dict>
 		<key>Frameworks/libswiftCore.dylib</key>
 		<dict>
 			<key>hash</key>
 			<data>
-			KFt3m2PXf7KLtlPH/dFjRxZu/Dc=
+			4zn76y1y9gHtnbnA9xAJN3gTjfc=
 			</data>
 			<key>hash2</key>
 			<data>
-			J+PRWU14eyk9KnlvcdCp5fuWxTvS4AJ0wGxzgk2V5EE=
+			YjP5QRTvdgBOHnMpa1v378XXpHheFq7Q00dUT3ElKDU=
 			</data>
 		</dict>
 		<key>Frameworks/libswiftCoreAudio.dylib</key>
 		<dict>
 			<key>hash</key>
 			<data>
-			ylfqEtpPpH5bCkjEGK/7yn1I6Ts=
+			k5MV4RdAF+U9IPs23qAxEkQ1zSY=
 			</data>
 			<key>hash2</key>
 			<data>
-			72WxqzL+FUPZX+6qj/y5WwHDir+kTJkIjy1cKQikDPE=
+			Qn8QRhMEyKPpSFi4fpzdxS0xvCD0RDRWzOnPCOWleJw=
 			</data>
 		</dict>
 		<key>Frameworks/libswiftCoreFoundation.dylib</key>
 		<dict>
 			<key>hash</key>
 			<data>
-			dOJd2grXqGYhIrz9CKpe2OXCdo0=
+			1M+6tKeVk9K8z4pcj76/nX0Orp4=
 			</data>
 			<key>hash2</key>
 			<data>
-			Iv12B9Qz0F1hYiVYR3VKSbVP2tDRKSclwkDiFAUmYgk=
+			WS7J8/3xUQcFUG9uPnDgeO6LRJSEubOpxNWSKXjs7jQ=
 			</data>
 		</dict>
 		<key>Frameworks/libswiftCoreGraphics.dylib</key>
 		<dict>
 			<key>hash</key>
 			<data>
-			oKCWaSlRFg+oK78osXFZfQ3uDuI=
+			uqFMn/wUXGsLEyNEkJDsUvqV+1Y=
 			</data>
 			<key>hash2</key>
 			<data>
-			l9W6YJb5T7JVJsXuEcNBJnFPe6LtWBYyI4b1+3EGQ70=
+			8v8NzWtjlYaEngfnhNCrwis/t4uy1D/hKL9Mi0iALDA=
 			</data>
 		</dict>
 		<key>Frameworks/libswiftCoreImage.dylib</key>
 		<dict>
 			<key>hash</key>
 			<data>
-			dG50HETdCOQfPRzU0Ic37vCc/9o=
+			pSXJcUvGBwZSSzpqxgZO9fYQpSQ=
 			</data>
 			<key>hash2</key>
 			<data>
-			aikde3796lmdat6d6burRj11GB0vumLYqKc76PTbaj8=
+			EUtBS7YKQL4IFn0mPxgDgFClheyYPTa6FlklEQEbmHc=
 			</data>
 		</dict>
 		<key>Frameworks/libswiftCoreMedia.dylib</key>
 		<dict>
 			<key>hash</key>
 			<data>
-			odFZruKElA+9a+XkB1apq2pyAKw=
+			1bCvwJsFxbLj3ouPYWb1vBRiF2s=
 			</data>
 			<key>hash2</key>
 			<data>
-			SFsqCNcRX+lHNvggUNNbc2sA+8JbHLAK9A6Q2Y+7ftk=
+			I/QwtpQQe3B2xT4C21p7IcQZzn4myAoQKZI850YdzHg=
 			</data>
 		</dict>
 		<key>Frameworks/libswiftDarwin.dylib</key>
 		<dict>
 			<key>hash</key>
 			<data>
-			Ekbogs5rZiDaOKSVVOIKmv8yP2w=
+			0eedFvcTWdCm0JCdXXbYsjbQu2k=
 			</data>
 			<key>hash2</key>
 			<data>
-			1/h4UhOpPzpZ3LzlUnCxfT7A7CaNMIOiDOQGLDovTgo=
+			y1h93Tcj4VDDnFboKwtqtUpFg8b/YzdZ4sXKQyyth4U=
 			</data>
 		</dict>
 		<key>Frameworks/libswiftDispatch.dylib</key>
 		<dict>
 			<key>hash</key>
 			<data>
-			KZ/cE5kKCjjALrWnzi/IZiYkeBE=
+			nEKmyjjqaE/4KcHgQ94WgKlVbaU=
 			</data>
 			<key>hash2</key>
 			<data>
-			60cC2TqB1pY0cNedaMqqV3vs0gCHm8UCQVLJ0jJzI28=
+			cRqD5x6M2KFowR26/9icxu6/UtjQxwNzP5GgUwhuiio=
 			</data>
 		</dict>
 		<key>Frameworks/libswiftFoundation.dylib</key>
 		<dict>
 			<key>hash</key>
 			<data>
-			D4CHUkxS6fDieQm0JXhasUkIO3c=
+			cmNqhtGBh6e4ZTYjiJLbhuHRdc0=
 			</data>
 			<key>hash2</key>
 			<data>
-			wpLaOUTaB7F72+kJXBeAP0Xlyp1AkIpttOLYtvAO3RQ=
+			/KLnMtHKigpKDNCEnguM8XW6EDo6d3+EbQTFUrw6b9Y=
 			</data>
 		</dict>
 		<key>Frameworks/libswiftMetal.dylib</key>
 		<dict>
 			<key>hash</key>
 			<data>
-			DL0GBvhxifsCpExV32K3d37vZMk=
+			PAm/ukk7wQ4Z7Ys9ul+Hq4PJP+E=
 			</data>
 			<key>hash2</key>
 			<data>
-			3F/zfCdecs6GtkbzX7Xi07H2vc33qxEYkrIftLjEp64=
+			in88VUVfQfFw8ZOJ3lMU7LMj647arDJ6QnScyuNTtRk=
 			</data>
 		</dict>
 		<key>Frameworks/libswiftObjectiveC.dylib</key>
 		<dict>
 			<key>hash</key>
 			<data>
-			X5Lb3FE34KNAL5snNyu8I7MppoE=
+			3E9JJ2xzHu8f2j5JZYfoZ+x1jMU=
 			</data>
 			<key>hash2</key>
 			<data>
-			4FiqTxl58ntIpY/WW/szZj0BnHXLqKAE4Cx3Z8txX+M=
+			dfLWycynWL8swTWdAClrjvFpPyJJ5VJAtLlp4iQz5O8=
 			</data>
 		</dict>
 		<key>Frameworks/libswiftQuartzCore.dylib</key>
 		<dict>
 			<key>hash</key>
 			<data>
-			wpPfT2ZYqDtV8LC7tvoOz5FIvWo=
+			gU++xPxoA7pH+w+RtHN0v1dAmqw=
 			</data>
 			<key>hash2</key>
 			<data>
-			ExtIoFyMZiTs/657o3qRioHH45FHNDzLMojsBB15V+E=
+			R3JOsJBdYqRk1xUD3R07fNtwfqcVX6Cosrn0kNtHcOQ=
 			</data>
 		</dict>
 		<key>Frameworks/libswiftSwiftOnoneSupport.dylib</key>
 		<dict>
 			<key>hash</key>
 			<data>
-			D38ZqW/kqLjSdad8fvWunNuDSGs=
+			LGWUYmpGsrLP9agzpGxQh2sK3O8=
 			</data>
 			<key>hash2</key>
 			<data>
-			AbiqVf7dluuR8u/qmvrgktzGdgQ8N87eSJWZhqs9oHM=
+			eE52l8payczU7l0Hpo32LG6NrMEKFNBhwOGjdRUjF0M=
 			</data>
 		</dict>
 		<key>Frameworks/libswiftUIKit.dylib</key>
 		<dict>
 			<key>hash</key>
 			<data>
-			5wMkr51pDRH8PDzP3Bjqk4Qy4cs=
+			9LyLZC3F/xaRK32VipuXkcFiy4A=
 			</data>
 			<key>hash2</key>
 			<data>
-			xGyipgCx6JFkqlnfh6bj56jRFPKCauyRPM0KB6+Q5v8=
+			ISC/W9w0RKMj1oo/csCey/4SY4JU2WRuBoleGbYMZmg=
 			</data>
 		</dict>
 		<key>Frameworks/libswiftos.dylib</key>
 		<dict>
 			<key>hash</key>
 			<data>
-			Vnurcvfwt3SW/agfJlOdUi1diDY=
+			z2KM6mxXHkBs94Ln+AnUxg3KoDo=
 			</data>
 			<key>hash2</key>
 			<data>
-			DTwNnRNm9WO3Fkqz8CpP8dqCKlDZ9NODfsHb+qtB2YI=
+			zTvBd7YDqAgmq7JggNFuubZcYcnl70BadnOjxBUB1lM=
 			</data>
 		</dict>
 		<key>Frameworks/libswiftsimd.dylib</key>
 		<dict>
 			<key>hash</key>
 			<data>
-			6Z28ZZWvGEuFgIwB9dKwPVtlKfQ=
+			qDj17iVa9j3JsBh2vsfJcrvT19g=
 			</data>
 			<key>hash2</key>
 			<data>
-			dgcyCjIvBdgopx5CPgmhALCIKpUrn3+ijEdFeQp57wk=
+			UR+OfsV43DVSPDtQBVFoEJ9tuvOvvpfPu019PBw+0hk=
 			</data>
 		</dict>
 		<key>LaunchImage-1100-Landscape-2436h@3x.png</key>
@@ -1688,22 +1688,22 @@
 		<dict>
 			<key>hash</key>
 			<data>
-			HGQoZCqsnAcpXpUU2Euwer6XpSk=
+			C9CLtoiVDlYPacBkIs+hN8qWL2w=
 			</data>
 			<key>hash2</key>
 			<data>
-			nEOyqE9FxudLnnLxAn9w79r+pKez8o+lOXcbO0JyLHc=
+			BPamdQ+XBxFRB1ecGx7xsTVexVgU6cCqM/3nSx/SDxo=
 			</data>
 		</dict>
 		<key>config.xml</key>
 		<dict>
 			<key>hash</key>
 			<data>
-			4Ey/jpgwhwU4OCZf57u3NVkF1xQ=
+			AjI+ESkl36HBKYsk8ULo6f9LwCw=
 			</data>
 			<key>hash2</key>
 			<data>
-			Wt4EjOKnK+exUViTV6Blq5TQRlJ5pGRa/NYR5WGdDGw=
+			UdpfViruJpsDGJAY8b/SX38vV8TW44PF28Nf62U+iRg=
 			</data>
 		</dict>
 		<key>embedded.mobileprovision</key>
@@ -2634,11 +2634,11 @@
 		<dict>
 			<key>hash</key>
 			<data>
-			FahF/fMDsR1+zrs4BFASK2HvtUE=
+			xRDtmYCYmFtZu+H1/SjTBlennsM=
 			</data>
 			<key>hash2</key>
 			<data>
-			NSekfExl5bEy5F9aBqNWO9CNF7llGgaRGhNra6ncWBQ=
+			s2KUAXjrg/ljg8IoSBtI3V2xcRU57DBSC4OGz/NYnBg=
 			</data>
 		</dict>
 		<key>www/js/security.js</key>
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/config.xml b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/config.xml
index b9c0ba5..4096c07 100755
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/config.xml
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/config.xml
@@ -55,7 +55,7 @@
     <feature name="ThemeableBrowser">
         <param name="ios-package" value="CDVThemeableBrowser" />
     </feature>
-    <name>dlapp</name>
+    <name short="大理APP">dlapp</name>
     <description>
         A sample Apache Cordova application that responds to the deviceready event.
     </description>
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/dlapp b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/dlapp
index a189756..1d04bf9 100755
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/dlapp
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/dlapp
Binary files differ
diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/www/js/scan.js b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/www/js/scan.js
index 2172970..e75eba8 100644
--- a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/www/js/scan.js
+++ b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/www/js/scan.js
@@ -121,8 +121,8 @@
     inAppBrowserRef.addEventListener('loadstart', loadStartCallBack);
     inAppBrowserRef.addEventListener('beforeload', beforeloadCallBack);
 }
-function loadStartCallBack(params) {
-    //console.log("1",params.url);
+function loadStartCallBack(params,callback) {
+    console.log("1",params.url);
 }
 function beforeloadCallBack(params,callback) {
     console.log("2",params.url);
diff --git a/platforms/ios/dlapp/config.xml b/platforms/ios/dlapp/config.xml
index b9c0ba5..4096c07 100755
--- a/platforms/ios/dlapp/config.xml
+++ b/platforms/ios/dlapp/config.xml
@@ -55,7 +55,7 @@
     <feature name="ThemeableBrowser">
         <param name="ios-package" value="CDVThemeableBrowser" />
     </feature>
-    <name>dlapp</name>
+    <name short="大理APP">dlapp</name>
     <description>
         A sample Apache Cordova application that responds to the deviceready event.
     </description>
diff --git a/platforms/ios/dlapp/dlapp-Info.plist b/platforms/ios/dlapp/dlapp-Info.plist
index 332d3ce..8035b4b 100644
--- a/platforms/ios/dlapp/dlapp-Info.plist
+++ b/platforms/ios/dlapp/dlapp-Info.plist
@@ -5,7 +5,7 @@
 	<key>CFBundleDevelopmentRegion</key>
 	<string>en_US</string>
 	<key>CFBundleDisplayName</key>
-	<string>dlapp</string>
+	<string>大理APP</string>
 	<key>CFBundleExecutable</key>
 	<string>$(EXECUTABLE_NAME)</string>
 	<key>CFBundleIdentifier</key>
