欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > Demo分析学习《二》AirBike:类摩拜单车MAP地图使用

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:789

HTML5自适应律师工作室类网

2020-04-04   浏览:654

高端HTML5响应式企业通用网

2020-05-06   浏览:560

html5响应式外贸网站英文版

2020-05-08   浏览:545

HTML5影视传媒文化公司类网

2020-05-12   浏览:543

Demo分析学习《二》AirBike:类摩拜单车MAP地图使用

发布时间:2020-11-30  

制作者:天下钞票

demo地址:AirBike:类摩拜单车MAP地图使用 
很完整的demo,填写手机号码竟然真的可以收到验证码。今天试着分析了一下代码,将学习结果汇报一下:

 

亮点一、map组件的使用

map组件的使用,教程里面一般都一句带过了,因为老的教程map组件在IDE不能用,这个demo给的代码比较不错,之前一直有人问怎么把view控件放在map控件之上,这个demo也没有实现。^_^

map组件的使用在这里不再详述了,有心人可以对照这个demo看看这个map控件上放其他控件的方法,学习一下 
代码如下,详细参数代表什么可以对照小程序官方文档。

 

<map id="myMap" longitude="{{point.longitude}}" latitude="{{point.latitude}}" markers="{{markers}}" scale="{{mapScale}}" show-location bindregionchange="regionchange" bindmarkertap="markertap" controls="{{controls}}" bindcontroltap="controltap" style="width: {{mapWidth}}; height: {{mapHeight}};top: {{mapTop}}">

</map>

 

亮点二、服务器与小程序之间如何加密传输数据

做过微信公众平台的可能对这个方式非常熟悉,帖代码如下:

 

//获取验证码

getCodeAct: function() {

//请求接口

if (checkNetWork.checkNetWorkStatu() == false) {

console.log('网络错误')

}else {

var that = this

var checksum = that.data.getCodeParams.token + that.data.getCodeParams.mobile + that.data.SALT

var checksumMd5 = md5.hexMD5(checksum)

that.setData({

'getCodeParams.checksum': checksumMd5,

//显示loading

'getCodeBtnProperty.loading': true

})

wx.request({

url: that.data.AirBikeUrl.getcode,

data: that.data.getCodeParams,

method: 'POST', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT

// header: {}, // 设置请求的 header

header: {

'content-type': 'application/x-www-form-urlencoded'

},

success: function(res){

// success

console.log(that.data.getCodeParams),

console.log("获取验证码:" + res.data)

var message = res.data.message

var statu = res.data.status

if (statu == '0') {

wx.showToast({

title: '获取验证码:\n' + message,

icon: 'success',

duration: 2000,

})

//启动定时器

var number=60;

var time = setInterval(function(){

number--;

that.setData({

'getCodeBtnProperty.title':number + '秒',

'getCodeBtnProperty.disabled': true

})

if(number==0){

that.setData({

'getCodeBtnProperty.title':'重新获取',

'getCodeBtnProperty.disabled': false

})

clearInterval(time);

}

},1000);

}else {

wx.showToast({

title: '注册登录:\n' + message,

icon: 'loading',

duration: 2000,

})

}

//光标下移

that.setData({

'codeTfFocus': true

})

},

fail: function(res) {

// fail

console.log(res)

that.failMessage()

},

complete: function() {

// complete

//隐藏loading

that.setData({

'getCodeBtnProperty.loading': false

})

}

})

}

},

首先,使用var checksum = that.data.getCodeParams.token + that.data.getCodeParams.mobile + that.data.SALT拼接字符串,然后用var checksumMd5 = md5.hexMD5(checksum)将该字符串进行MD5加密,最后将token,mobile,和加密后的字符串传送给服务器端,服务器端接受到token和mobile以后,与服务器端的SALT(服务器端SALT与小程序端的一致,但是并未通过网络传输)拼接后,也进行MD5加密,如果加密后的字符串一致,表示数据在传输过程中既没有被篡改,也没有人伪造该数据(因为伪造者不知道传输过程的SALT),传输的数据截图如下: 

Demo分析学习《二》AirBike:类摩拜单车MAP地图使用

说的有什么不对的,欢迎指点。

 

亮点三、demo里面包括MD5.js加密函数,还有检测网络连接状态的判断函数,收藏总要用得着。