解决安卓扫码问题
diff --git a/platforms/browser/browser.json b/platforms/browser/browser.json
index 9416cfc..13a6fc8 100644
--- a/platforms/browser/browser.json
+++ b/platforms/browser/browser.json
@@ -36,6 +36,14 @@
               "mode": "merge",
               "id": "config.xml"
             }
+          ],
+          "NSPhotoLibraryUsageDescription": [
+            {
+              "xml": "<string>APP需要使用您的相册权限,没有该权限将无法完成扫一扫功能</string>",
+              "count": 1,
+              "mode": "merge",
+              "id": "config.xml"
+            }
           ]
         }
       }
@@ -85,9 +93,15 @@
       "PACKAGE_NAME": "com.supwisdom.dlapp"
     },
     "jpush-phonegap-plugin": {
-      "APP_KEY": "your_jpush_appkey",
+      "APP_KEY": "bd22b85f247a6e2ca307d3c5",
       "CHANNEL": "developer-default",
       "PACKAGE_NAME": "com.supwisdom.dlapp"
+    },
+    "cordova-plugin-app-version": {
+      "PACKAGE_NAME": "com.supwisdom.dlapp"
+    },
+    "cordova-plugin-wkwebview-engine": {
+      "PACKAGE_NAME": "com.supwisdom.dlapp"
     }
   },
   "dependent_plugins": {},
@@ -445,6 +459,14 @@
       "clobbers": [
         "JPush"
       ]
+    },
+    {
+      "file": "plugins/cordova-plugin-app-version/www/AppVersionPlugin.js",
+      "id": "cordova-plugin-app-version.AppVersionPlugin",
+      "pluginId": "cordova-plugin-app-version",
+      "clobbers": [
+        "cordova.getAppVersion"
+      ]
     }
   ],
   "plugin_metadata": {
@@ -462,6 +484,8 @@
     "cordova-plugin-device": "2.0.2",
     "cordova-plugin-themeablebrowser": "0.2.17",
     "cordova-plugin-jcore": "1.3.0",
-    "jpush-phonegap-plugin": "3.7.2"
+    "jpush-phonegap-plugin": "3.7.2",
+    "cordova-plugin-app-version": "0.1.9",
+    "cordova-plugin-wkwebview-engine": "1.2.1"
   }
 }
diff --git a/platforms/browser/config.xml b/platforms/browser/config.xml
index 11d63b1..b0a0bfa 100644
--- a/platforms/browser/config.xml
+++ b/platforms/browser/config.xml
@@ -1,5 +1,5 @@
 <?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">
+<widget id="com.dalicitycard.app" version="1.0.3" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
     <name short="大理市民卡">dlapp</name>
     <description>
         A sample Apache Cordova application that responds to the deviceready event.
@@ -22,6 +22,9 @@
     <edit-config file="*-Info.plist" mode="merge" target="NSCameraUsageDescription">
         <string>APP需要使用您的相机权限,没有该权限将无法完成扫一扫功能</string>
     </edit-config>
+    <edit-config file="*-Info.plist" mode="merge" target="NSPhotoLibraryUsageDescription">
+        <string>APP需要使用您的相册权限,没有该权限将无法完成扫一扫功能</string>
+    </edit-config>
     <preference name="AutoHideSplashScreen" value="true" />
     <preference name="SplashScreenDelay" value="0" />
     <preference name="SplashShowOnlyFirstTime" value="true" />
diff --git a/platforms/browser/platform_www/cordova_plugins.js b/platforms/browser/platform_www/cordova_plugins.js
index 30be43a..3f30e69 100644
--- a/platforms/browser/platform_www/cordova_plugins.js
+++ b/platforms/browser/platform_www/cordova_plugins.js
@@ -353,6 +353,14 @@
         "clobbers": [
             "JPush"
         ]
+    },
+    {
+        "file": "plugins/cordova-plugin-app-version/www/AppVersionPlugin.js",
+        "id": "cordova-plugin-app-version.AppVersionPlugin",
+        "pluginId": "cordova-plugin-app-version",
+        "clobbers": [
+            "cordova.getAppVersion"
+        ]
     }
 ];
 module.exports.metadata = 
@@ -372,7 +380,9 @@
     "cordova-plugin-device": "2.0.2",
     "cordova-plugin-themeablebrowser": "0.2.17",
     "cordova-plugin-jcore": "1.3.0",
-    "jpush-phonegap-plugin": "3.7.2"
+    "jpush-phonegap-plugin": "3.7.2",
+    "cordova-plugin-app-version": "0.1.9",
+    "cordova-plugin-wkwebview-engine": "1.2.1"
 }
 // BOTTOM OF METADATA
 });
\ No newline at end of file
diff --git a/platforms/browser/platform_www/plugins/cordova-plugin-app-version/www/AppVersionPlugin.js b/platforms/browser/platform_www/plugins/cordova-plugin-app-version/www/AppVersionPlugin.js
new file mode 100644
index 0000000..c62fc27
--- /dev/null
+++ b/platforms/browser/platform_www/plugins/cordova-plugin-app-version/www/AppVersionPlugin.js
@@ -0,0 +1,67 @@
+cordova.define("cordova-plugin-app-version.AppVersionPlugin", function(require, exports, module) { /*jslint indent: 2 */
+/*global window, jQuery, angular, cordova */
+"use strict";
+
+// Returns a jQuery or AngularJS deferred object, or pass a success and fail callbacks if you don't want to use jQuery or AngularJS
+var getPromisedCordovaExec = function (command, success, fail) {
+  var toReturn, deferred, injector, $q;
+  if (success === undefined) {
+    if (window.jQuery) {
+      deferred = jQuery.Deferred();
+      success = deferred.resolve;
+      fail = deferred.reject;
+      toReturn = deferred;
+    } else if (window.angular) {
+      injector = angular.injector(["ng"]);
+      $q = injector.get("$q");
+      deferred = $q.defer();
+      success = deferred.resolve;
+      fail = deferred.reject;
+      toReturn = deferred.promise;
+    } else if (window.when && window.when.promise) {
+      deferred = when.defer();
+      success = deferred.resolve;
+      fail = deferred.reject;
+      toReturn = deferred.promise;
+    } else if (window.Promise) {
+      toReturn = new Promise(function(c, e) {
+        success = c;
+        fail = e;
+      });
+    } else if (window.WinJS && window.WinJS.Promise) {
+      toReturn = new WinJS.Promise(function(c, e) {
+        success = c;
+        fail = e;
+      });
+    } else {
+      return console.error('AppVersion either needs a success callback, or jQuery/AngularJS/Promise/WinJS.Promise defined for using promises');
+    }
+  }
+  // 5th param is NOT optional. must be at least empty array
+  cordova.exec(success, fail, "AppVersion", command, []);
+  return toReturn;
+};
+
+var getAppVersion = function (success, fail) {
+  return getPromisedCordovaExec('getVersionNumber', success, fail);
+};
+
+getAppVersion.getAppName = function (success, fail) {
+  return getPromisedCordovaExec('getAppName', success, fail);
+};
+
+getAppVersion.getPackageName = function (success, fail) {
+  return getPromisedCordovaExec('getPackageName', success, fail);
+};
+
+getAppVersion.getVersionNumber = function (success, fail) {
+  return getPromisedCordovaExec('getVersionNumber', success, fail);
+};
+
+getAppVersion.getVersionCode = function (success, fail) {
+  return getPromisedCordovaExec('getVersionCode', success, fail);
+};
+
+module.exports = getAppVersion;
+
+});