hangb 7 years ago
parent
commit
a0e9d23508
3 changed files with 318 additions and 1 deletions
  1. 1 0
      app.html
  2. 292 0
      assets/js/jssdk.js
  3. 25 1
      components/mobile/loginMobile.vue

+ 1 - 0
app.html

@@ -70,6 +70,7 @@
   </div>
 {{ APP }}
 </body>
+<script src="~assets/js/jssdk.js"></script>
 <script>
   if(navigator.appName == "Microsoft Internet Explorer"&&parseInt(navigator.appVersion.split(";")[1].replace(/[ ]/g, "").replace("MSIE",""))<10){
     var el = document.getElementById('result')

+ 292 - 0
assets/js/jssdk.js

@@ -0,0 +1,292 @@
+window.jssdk = {
+
+}
+window.jssdk.savePricToAlbum = function savePricToAlbum (src) {
+  return new Promise((resolve, reject) => {
+    if (window.cordova) {
+      window.MrModel.saveImagToAlbum(src, function (success) {
+        resolve(success)
+      }, function (error) {
+        reject(error)
+      })
+    } else {
+      reject(new Error('no cordova'))
+    }
+  })
+}
+window.jssdk.jumpbackNative = function jumpbackNative () {
+  return new Promise((resolve, reject) => {
+    if (window.cordova) {
+      window.MrModel.backToNative(function (success) {
+        resolve(success)
+      }, function (error) {
+        reject(error)
+      })
+    } else {
+      reject(new Error('no cordova'))
+    }
+  })
+}
+window.jssdk.deviceInfo = function deviceInfo () {
+  return new Promise((resolve, reject) => {
+    if (window.cordova) {
+      device.getInfo(function (obj) {
+        resolve(obj)
+      }, function (error) {
+        reject(error)
+      })
+    } else {
+      resolve('')
+    }
+  })
+}
+window.jssdk.camera = function camera (options) {
+  return new Promise((resolve, reject) => {
+    if (window.cordova) {
+      let options = options
+      navigator.camera.getPicture(function (imageData) {
+        resolve(imageData)
+      }, function (message) {}, options)
+    } else {
+      reject(new Error('no cordova'))
+    }
+  })
+}
+window.jssdk.ImagePicker = function ImagePicker (options) {
+  return new Promise((resolve, reject) => {
+    if (window.cordova) {
+      window.imagePicker.getPictures(function (results) {
+        resolve(results)
+      }, function (error) {
+        reject(error)
+      }, options)
+    } else {
+      reject(new Error('no cordova'))
+    }
+  })
+}
+window.jssdk.getCode = function getCode (appId) {
+  let paramse = {
+    appId: appId
+  }
+  return new Promise((resolve, reject) => {
+    if (window.cordova) {
+      window.MrJsBridge.call((returnValue) => {
+        resolve(returnValue)
+      }, (error) => {
+        reject(error)
+      }, 'getCode', paramse)
+    }
+  })
+}
+
+window.jssdk.currentTownInfo = function currentTownInfo () {
+  return new Promise((resolve, reject) => {
+    if (window.cordova) {
+      window.MrJsBridge.call((returnValue) => {
+        resolve(returnValue)
+      }, (error) => {
+        reject(error)
+      }, 'currentTownInfo', {})
+    }
+  })
+}
+
+window.jssdk.networkState =  function networkState () {
+  return new Promise((resolve, reject) => {
+    if (window.cordova) {
+      var networkState = ''
+      networkState = navigator.connection.type
+      var states = {}
+      states[Connection.UNKNOWN] = 'Unknown connection'
+      states[Connection.ETHERNET] = 'Ethernet connection'
+      states[Connection.WIFI] = 'WiFi connection'
+      states[Connection.CELL_2G] = 'Cell 2G connection'
+      states[Connection.CELL_3G] = 'Cell 3G connection'
+      states[Connection.CELL_4G] = 'Cell 4G connection'
+      states[Connection.CELL] = 'Cell generic connection'
+      states[Connection.NONE] = 'No network connection'
+      resolve(states[networkState])
+    }
+  })
+}
+
+window.jssdk.scanbarClick = function scanbarClick () {
+  return new Promise((resolve, reject) => {
+    if (window.cordova) {
+      window.MrModel.scanbarClick(function (success) {
+        resolve(success)
+      })
+    }
+  })
+}
+
+// 鍦板浘瀵艰埅
+window.jssdk.mapNavigation = function mapNavigation (params) {
+  return new Promise((resolve, reject) => {
+    if (window.cordova) {
+      let obj = {
+        originLat: '',
+        originLong: '',
+        destinLat: '',
+        destinLong: ''
+      }
+      if (!params) {
+        reject('鍙傛暟閿欒')
+        return
+      }
+      if (params.hasOwnProperty('originLat') && params.hasOwnProperty('originLong')) {
+        if (params.originLat.length > 0 && params.originLat.length > 0) {
+          obj.originLat = params.originLat
+          obj.originLong = params.originLong
+        } else {
+          obj.originLat = ''
+          obj.originLong = ''
+        }
+      }
+      if (params.hasOwnProperty('destinLat') && params.hasOwnProperty('destinLong')) {
+        if (params.destinLat.length > 0 && params.destinLong.length > 0) {
+          obj.destinLat = params.destinLat
+          obj.destinLong = params.destinLong
+        } else {
+          reject('缁堢偣浣嶇疆涓嶈兘涓虹┖')
+          return
+        }
+      }
+      window.MrModel.mapNavigation(obj, function () {
+        resolve()
+      }, function (error) {
+        reject(error)
+      })
+    }
+  })
+}
+
+window.jssdk.toOutterLink = function toOutterLink (obj) {
+  return new Promise((resolve, reject) => {
+    if (window.cordova) {
+      window.MrModel.toOutterLink(obj, function (success) {
+        resolve()
+      })
+    }
+  })
+}
+
+window.jssdk.showShareView =  function showShareView (obj) {
+  return new Promise((resolve, reject) => {
+    if (window.cordova) {
+      window.MrModel.showShareView(obj, function (success) {
+        resolve(success)
+      })
+    }
+  })
+}
+
+window.jssdk.setLocationString = function setLocationString (key, value) {
+  return new Promise((resolve, reject) => {
+    if (window.cordova) {
+      window.NativeStorage.setString(key, value, (success) => {
+        if (success === 'null') resolve(undefined)
+        resolve(success)
+      }, (error) => {
+        reject(error)
+      })
+    } else {
+      window.localStorage.setItem(key, value)
+      resolve()
+    }
+  })
+}
+window.jssdk.getLocationString = function getLocationString (key) {
+  return new Promise((resolve, reject) => {
+    if (window.cordova) {
+      window.NativeStorage.getString(key, (success) => {
+        if (success === 'null') resolve(undefined)
+        resolve(success)
+      }, (error) => {
+        reject(error)
+      })
+    } else {
+      let success = window.localStorage.getItem(key)
+      resolve(success)
+    }
+  })
+}
+window.jssdk.removeLocationString = function removeLocationString (key) {
+  return new Promise((resolve, reject) => {
+    if (window.cordova) {
+      window.NativeStorage.remove(key, (success) => {
+        if (success === 'null') resolve(undefined)
+        resolve(success)
+      }, (error) => {
+        reject(error)
+      })
+    } else {
+      window.localStorage.removeItem(key)
+      resolve()
+    }
+  })
+}
+window.jssdk.shareToWx = function shareToWx (argument) {
+  // body...
+  return new Promise((resolve, reject) => {
+    if (window.cordova) {
+      window.MrJsBridge.call((returnValue) => {
+      }, (error) => {
+        reject(error)
+      }, 'shareToWx', argument)
+    }
+  })
+}
+window.jssdk.getShareView = function getShareView () {
+  return new Promise((resolve, reject) => {
+    if (window.cordova) {
+      window.MrJsBridge.call((returnValue) => {
+        resolve(returnValue)
+      }, (error) => {
+        reject(error)
+      }, 'getShareView', '')
+    }
+  })
+}
+window.jssdk.payOrder = function payOrder (params) {
+  return new Promise((resolve, reject) => {
+    if (window.cordova) {
+      window.MrJsBridge.call(
+        (success) => {
+          resolve(success)
+        },
+        (error) => {
+          reject(error)
+        },
+        'payOrder', params
+      )
+    }
+  })
+}
+window.jssdk.lockListMansion = function lockListMansion () {
+  return new Promise((resolve, reject) => {
+    if (window.cordova) {
+      window.MrJsBridge.call((list) => {
+        resolve(JSON.parse(list))
+      }, (error) => {
+        reject(error)
+      }, 'lockListMansion', {})
+    }
+  })
+}
+window.jssdk.lockOpenMansion = function lockOpenMansion (id, pwd) {
+  return new Promise((resolve, reject) => {
+    if (window.cordova) {
+      let params = {
+        id: id,
+        pwd: pwd
+      }
+      window.MrJsBridge.call((success) => {
+        resolve(success)
+      }, (error) => {
+        reject(error)
+      }, 'lockOpenMansion', params)
+    }
+  })
+}

+ 25 - 1
components/mobile/loginMobile.vue

@@ -1,5 +1,6 @@
 <template>
 <div class="login">
+  <div>{{linkURL}}</div>
   <div class="page-part">
     <mt-field auto-complete="off" placeholder="手机号/邮箱" v-model="login.username" @blur.native.capture="codeCount"></mt-field>
   </div>
@@ -49,12 +50,35 @@
         },
         appId: '',
         returnUrl: '',
-        baseUrl: ''
+        baseUrl: '',
+        linkURL: ''
       }
     },
     mounted () {
       this.$nextTick(() => {
         this.getUrl()
+        this.linkURL = window.location.href
+        // 碧合应用授权认证
+        window.jssdk.getCode = function getCode () {
+          let paramse = {
+            appId: 'a9f624cbbdb947049f5638880b0ecbb2'
+          }
+          return new Promise((resolve, reject) => {
+            if (window.cordova) {
+              window.MrJsBridge.call((returnValue) => {
+                resolve(returnValue)
+              }, (error) => {
+                reject(error)
+              }, 'getCode', paramse)
+            }
+          })
+        }
+        window.jssdk.getCode().then((data) => {
+          // 成功回调 code
+          console.log(data)
+        }).catch((error) => {
+          console.log(error)
+        })
       })
     },
     computed: {