6.1 网络API
微信小程序处理的数据通常从后台服务器获取,再将处理过的结果保存到后台服务器,这就要求微信小程序要有与后台进行交互的能力。微信原生AP接口或第三方APL提供了各类接口实现前后端交互
网络API可以帮助开发者实现网络URL访问调用、文件的上传和下载、网络套接字的使用等功能处理。微信开发团队提供了10个网络API接口
(1)wx.request(0bject)接口 用于发起HTTPS 请求。
(2)wx.uploadFile(Object)接口 用于将本地资源上传到后台服务器。
(3)wx.downloadFile(Object)接口 用于下载文件资源到本地。
(4)wx.connectSocket(0bject)接口 用于创建一个WehSocket 连接。
(5)wx.sendSocketMessage(0bject)接口 用于实现通过 WehSocket连接发送数据
(6)wx.closeSocket(0bject)接口 用于关闭WebSocket 连接。
(7)wx.onSocketOpen(CallBack)接口 用于监听WebSocket 连接打开事件。
(8)wx.onSocketEror(CallBack)接口 用于监听WebSocket 错误。
(9)wx.onSocketMessage(CallBack)接口 用于实现监听WebSocket 接收到服务器的消息
事件。
(10)wx.onSocketClose(CallBack)接口 用于实现监听WebSocket 关闭。
以下介绍3个常用的网络API:
6.1.1 发起网络请求
wx.request(0bject) 实现向服务器发送请求、获取数据等各种网络交互操作,其相关参数如表所示。一个微信小程序同时只能有5个网络请求连接,并且是HTTPS请求
wx.request(0bject) 相关参数
示例代码:
这是通过 wx.request(Object)获取百度(https://www.baidu.com)首页的数据
//html
<button type="primary" bind:tap="getbaidutap">获取HTML数据</button>
<textarea value='{{html}}'auto-heightmaxlength='0'></textarea>
//js
page({
data:{
html:''
},
getbaidutap:function(){
var that = this;
wx.request({
url: 'https://www.baidu.com',
data:{},
header:{'Content-Type':'application/json'},
success:function(res){
console.log(res);
that.setData({
html:res.data
})
}
})
}
})
效果图:
通过 wx.request(Object) 的 GET 方法获取邮政编码对应的地址信息
代码如下:
//postcode.wxml文件
<view>邮政编码:</view>
<input type="text"bindinput="input"placeholder='6位邮政编码'/>
<button type="primary"bindtap="find">查询</button>
<block wx:for="{{address}}">
<block wx:for="{{item}}">
<text>{{item}}</text>
</block>
</block>
Page({
data:{
postcode:"",
address:[],
errMsg:"",
error_code:-1
},
input:function(e){
this.setData({
postcpde:e.detail.value,
})
console.log(e.detail.value)
},
find:function(){
var postcode=this.data.postcode;
if(postcode!=null&&postcode!=""){
var self=this;
wx.showTost({
title:'正在查询,请稍后....',
icon:'loading',
duration:10000
});
wx.request({
url: 'https://v.juhe.cn/postcode/query',
data:{
'postcode':postcode,
'key':'0ff9bfccdf147476e067de994eb5496e'},
header:{
'Content-Type':'application/json',
},
method:'GET',
success:function(res){
wx.hideToast();
if(res.data.rror_code==0){
console.log(res);
self.setData({
errMsg:"",
error_code:res.data.error_code,
address:res.data.result.list
})
}
else{
self.setData({
errMsg:res.data.reasp||res.data.reason,
error_code:res.data.error_code
})
}
}
})
}
}
})
通过 wx.request(Object) 的 POST 方法获取邮政编码对应的地址信息
代码如下:
//postcode.wxml文件
<view>邮政编码:</view>
<input type="text"bindinput="input"placeholder='6位邮政编码'/>
<button type="primary"bindtap="find">查询</button>
<block wx:for="{{address}}">
<block wx:for="{{item}}">
<text>{{item}}</text>
</block>
</block>
Page({
data:{
postcode:"",
address:[],
errMsg:"",
error_code:-1
},
input:function(e){
this.setData({
postcpde:e.detail.value,
})
console.log(e.detail.value)
},
find:function(){
var postcode=this.data.postcode;
if(postcode!=null&&postcode!=""){
var self=this;
wx.showTost({
title:'正在查询,请稍后....',
icon:'loading',
duration:10000
});
wx.request({
url: 'https://v.juhe.cn/postcode/query',
data:{
'postcode':postcode,
'key':'0ff9bfccdf147476e067de994eb5496e'},
header:{
'Content-Type':'application/x-www-form-urlencoded'
},
method:'POST',
success:function(res){
wx.hideToast();
if(res.data.rror_code==0){
console.log(res);
self.setData({
errMsg:"",
error_code:res.data.error_code,
address:res.data.result.list
})
}
else{
self.setData({
errMsg:res.data.reasp||res.data.reason,
error_code:res.data.error_code
})
}
}
})
}
}
})
6.1.2 上传文件
wx.uploadFile(Object) 接口用于将本地资源上传到开发者服务器,并在客户端发起一个HTTPS POST请求;
以下是 wx.uploadFile(Object) 的相关参数
通过 wx.uploadFile(Object) ,可以将图片上传带服务器并显示;
代码如下:
<!-- 上传文件 wxml文件 -->
<button type="primary" bind:tap="uploadimage">上传图片</button>
<image src="{{img}}" mode="widthFix"></image>
// 上传文件 js文件
Page({
data:{
img:null,
},
uploadumage:function(){
var that=this;
//选择图片
wx.chooseImage({
success:function(res){
var tempFilePaths=res.tempFilePaths
upload(that.tempFilePaths);
}
})
//显示toast提示消息
function upload(page,path){
wx.showToast({
icon:'loading',
title: '正在上传'
}),
wx.uploadFile({
filePath: path[0],
name: 'file',
url: 'http://localhost/',
success:function(res){
console.log(res);
if(res.statusCode!=200){
wx.showModal({
title:"提示",
content:"上传失败",
showCancel:false
})
return;
}
var data=res.data
//上传成功修改显示头像
page.setData({
img:path[0]
})
},
fail:function(e){
console.log(e);
wx.showModal({
title:"提示",
content:"上传失败",
showCancel:false
})
},
//隐藏Toast
complete:function(){
wx.hideToast();
}
})
}
}
})
效果图如下:
6.1.3 下载文件
wx.downloadFile(Object) 接口用于实现从开发者服务器下载文件资源到本地,在客户端直接发起一个 HTTP GET请求,返回文件的本地临时路径;
wx.downloadFile(Object) 相关参数
通过 wx.downloadFile(Object) 实现从服务器中下载图片
代码如下:
<!-- 下载图像 wxml文件 -->
<button type="primary" bind:tap="downloadimage">下载图像</button>
<image src="{{img}}" mode="widthFix" style="width: 90%;height: 500px;"></image>
// 下载图像 js文件
Page({
datd:{
img:null
},
downloadimage:function(){
var that=this;
wx.downloadFile({
//通过WAMP软件实现
url: 'http://localhost/1.jpg',
success:function(res){
console.log(res)
that.setData({
img:res.tempFilePath
})
}
})
}
})
效果图:
6.2 多媒体API
6.2.1 图片API
图片 API 实现对相机拍照图片或本地相册图片进行处理,主要包括以下4个接口:
(1)wx.chooselmage(Object)接口 用于从本地相册选择图片或使用相机拍照
(2)wx.previewlmage(Object)接口用于预览图片
(3)wx.getlmagelnfo(0bject)接口 用于获取图片信息。
(4)wx.saveImageToPhotosAlbum(0bject)接口 用于保存图片到系统相册
1 . 选择图片或拍照
wx.chooselmage(Object) 接口用于从本地相册选择图片或使用相机拍照。拍照时产生的临时路径在小程序本次启动期间可以正常使用,若要持久保存,则需要调用wsaveFile保存图片到本地。其相关参数如表所示:
若调用成功,则返回tempFilePaths和tempFiles,tempFilePaths表示图片在本地临时文件路径列表。tempFiles表示图片的本地文件列表,包括path和size
示例代码:
Js文件
Page({
wx.chooseImage({
//默认值为9
count:2,
//可以指定是原图还是压缩图,默认二者都有
sizeType:['original','compressed'],
//可以指定来源是相册还是相机,默认二者都有
sourceType:['album','camera'],
success:function(res){
//返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的sec属性来显示图片
var tempFilePaths=res.tempFilePaths
var tempFiles=res.tempFiles
console.log(tempFilePaths)
console.log(tempFiles)
}
})
})
2. 预览图片
wx.previewlmage(Object)接口用于预览图片
示例代码:
page({
wx.previewImage({
current:"http://bomob-cdn-16488.b0.upaiyun.com/2018/02/05/2.png",
urls: ["http://bomob-cdn-16488.b0.upaiyun.com/2018/02/05/1.png",
"http://bomob-cdn-16488.b0.upaiyun.com/2018/02/05/2.png",
"http://bomob-cdn-16488.b0.upaiyun.com/2018/02/05/3.png"
],
})
})
3.获取图片信息
wx.getlmagelnfo(0bject)接口 用于获取图片信息;参数如表:
代码如下:
wx.chooseImage({
success:function(res){
wx.getImageInfo({
src: res.tempFilePaths[0],
success:function(e){
console.log(e.width)
console.log(e.height)
}
})
},
})
4.保存图片到系统相册
wx.saveImageToPhotosAlbum(0bject)接口 用于保存图片到系统相册,需要得到用户授权scope.writePhotosAlbum. 相关参数如表:
示例代码:
wx.chooseImage({
success:function(res){
wx.saveImageToPhotosAlbum({
filePath: res.tempFilePaths[0],
success:function(e){
console.log(e)
}
})
},
})
6.2.2 录音API
录音API提供了语音录制的功能,主要包括以下两个API接口:
(1)wx.stariRecord(Object)接口 用于实现开始录音。
(2)wx.stopRecord(Objeet)接日 用于实现主动调用停止录音
1.开始录音
wx. startRecord(0bject)接口用于实现开始录音。当主动调用wx.stopRecord(Object)接口或者录音超过1分钟时,系统自动结束录音,并返回录音文件的临时文件路径。若要持久保存,则需要调用 wx.saveFile()接口。其相关参数如表所示:
2.停止录音
ws.slopReeord(Objeet)接口用于实现主动调用停止录音
示例代码如下:
wx.startRecord({
success:function(res){
var tempFilePath=res.tempFilePath
},
fail:function(res){
//录音失败
}
}),
setTimeout(function() {
//结束录音
wx.stopRecord()
},10000)
6.2.3 音频播放控制 API
音频播放控制API主要用于对语音媒体文件的控制,包括播放、暂停、停止及audio组件的控制,主要包括以下3个API;
(1)wx,playVoice(Object)接口 用于实现开始播放语音
(2)wx.pauseVoice(Object)接日 用于实现暂停正在播放的语音
(3)wx, slopVoice(Objec)接日 用于结束播放语音
1.播放语音
wx.playVoice(Object) 接口用于开始播放语音,同时只允许一个语音文件播放,如果前一个语音文件还未播放完,则中断前一个语音文件的播放。其相关参数如表所示:
示例代码:
wx.startRecord({
success:function(res) {
var tempFilePath=res.tempFilePath
wx.playVoice({
filePath: tempFilePath,
complete:function() {
}
})
}
})
2.暂停播放
wx.pauseVoice(0bject) 用于暂停正在播放的语音。再次调用wx.playVoice(Objeet)播放同一个文件时,会从暂停处开始播放。如果想从头开始播放,则需要先调用wx.stopVoice(Object),示例代码如下:
//暂停播放
wx.startRecord({
success:function(res) {
var tempFilePath=res.tempFilePath
wx.playVoice({
filePath: tempFilePath,
})
setTimeout(function() {
//暂停播放
wx.pauseVoice()
},5000)
}
})
3.结束播放
wx.stopVoice(Object) 用于结束播放音乐
// 结束播放
wx.startRecord({
success:function(res){
var tempFilePath=res.tempFilePath
wx.playVoice({
filePath: tempFilePath,
})
setTimeout(function(){
wx.stopVoice()
},5000)
}
})
6.2.4 音乐播放控制 API
音乐播放控制API主要用于实现对背景音乐的控制,音乐文件只能是网络流媒体,不能是本地音乐文件。音乐播放控制API主要包括以下8个API:
(1)wx.playBackgroundAudio(Object)接 用于播放音乐。
(2)wx. getBackgroundAudioPlayerState(Object)接口 用于获取音乐播放状态,
(3)wx.seekBackgroundAudio(0bject)接口 用于定位音乐播放进度。
(4)wx.pauseBackgroundAudio()接口 用于实现暂停播放音乐。
(5)wx.stopBackgroundAudio()接口 用于实现停止播放音乐。
(6)wx.onBackgroundAudioPlay(CallBack)接日 用于实现监听音乐播放
(7)wx.onBaekgroundAudioPause(CalBack)接口 用于实现监听音乐暂停
(8)wx.onBackgroundAudioStop(CallBack)接口 用于实现监听音乐停止。
1.播放音乐
wx.playBackgroundudio(Object)用于播放音乐,同一时间只能有一首音乐处于播放状态,其相关参数如表所示
2.获取音乐播放状态
wx. getBackgroundAudioPlayerState(Object)接口用于获取音乐播放状态,其相关参数如表所示
接口调用成功后返回的参数如表所示
3.控制音乐播放进度
wx,seekBackgroundAudio(0bject)接口用于控制音乐播放进度,其相关参数如表所示
4.暂停播放音乐
wx.pauseBackgroundAudio()接口用于暂停播放音乐
5.停止播放音乐
wx.stopBackgroundAudio()接口用于停止播放音乐
6.监听播放音乐
wx. onBackgroundAudioPlay(CallBack)接口用于实现监听音乐播放,通常被 wx. playBackgroundAudio(Object)方法触发,在CallBack中可改变播放图标
7.监听音乐暂停
wx.onBackgroundAudioPause(CallBack)接口用于实现监听音乐暂停,通常被wx.pauseBackgroundAudio()方法触发。在CallBack中可以改变播放图标
8.监听音乐停止
wx.onBackgroundAudioStop(CallBack)接口用于实现监听音乐停止,通常被音乐自然播放停止或wx.seekBackgroundAudio(Object)方法导致播放位置等于音乐总时长时触发。在CallBack中可以改变播放图标
9.案例展示
以小程序music为案例来展示音乐API的使用
<view class="container">
<image class="bgaudio"src="{{changedImg? music.coverImg:'/image/background.png'}}"/>
<view class="control –view" >
<!--使用data-how定义一个0表示快退10秒 -->
<image src="/image/pre.png"bindtap="onPositionTap"data -how="0"/>
<image src="/image/{{isPlaying?'pause':'play'}}.png" bindtap="onAudioTap"/>
<image src="/image/stop.png"binatap="onStopTap"/>
<!--使用 data-how 定义一个1 表示快进10 秒 -->
<image src="/image/next.png"bindtap="onPositionTap"datahow="1"/></view>
</view>
.bgaudio{
height:350rpx;
width:350rpx;
margin-bottom:100rpx;
}
.control -view image{
height:64rpx;
width:64rpx;
margin:30rpx;
}
Page({
data:{
//记录播放状态
isPlaying:false,
//记录coverImg,仅当音乐初始时和播放停止时,使用默认的图片。播放中和暂停时都使用当前音乐的图片
coverImg,
changedImg: false,
//音乐内容
music:{
"url":
"http://bmob-can-16488.b0.upaiyun.com/2018/02/09/117e4a1b405195b18061299e2de89597.mp3",
"title":"盛晓玫-有一天",
"coverImg":
"http://bmob-can-16488.b0upaivun.com/2018/02/09/£6042971409681880cc3d3e581f7724.jpg" ,
},
},
onLoad: function(){
//页面加载时,注册监听事件
this.onAudioState();
},
//点击播放或者暂停按钮时触发
onAudioTap:function(event){
if(this.data.isplaying){
//如果在正常播放状态,就暂停,并修改播放的状
wx.pauseBackgroundAudio();
}
else{
//如果在暂停状态,就开始播放,并修改播放的
let music=this.data.music;
wx.playBackgroundAudio({
dataUrl:music.url,
title:music.title,
coverImgUrl:music.coverImg
})
}
},
//点击即可停止播放音乐
onStopTap:function(){
let that=this;
wx.stopBackgroundAudio({
success:function(){
//改变 coverImg 和播放状态
that.setData
({isPlaying:false,changedImg:false});
}
})
},
//点击“快进10秒”或者“快退10秒”时,触发
onPositionTap:function(event){
let how=event.target.dataset.how;
//获取音乐的播放状态
wx.getBackgroundAudioplayerState({
success:function(res){
//仅在音乐播放中,快进和快退才生效
//音乐的播放状态,1表示播放中
let status=res,status;
if(status===1){
//音乐的总时长
let duration=res.duration;
//音乐播放的当前位置
let currentPosition=res.currentPosition;
if(how ==="0"){
//注意:快退时,当前播放位置快退10秒小于0时,直接设置position为1;否则,成去10秒
//快退到达的位置
let position=currentposition-10;
if(position<0){
position =1;
}
//执行快退
wx.seekBackgroundAudio({
position: position
});
//给出一个友情提示,在实际应用中,请删除!!!
wx.showToast({title:"快退10s",duration:500});
}
(how==="1");{
//注意:快进时,当前播放位置快进10秒后大于总时长时,直接设置position为总时长减1
//快进到达的位置
let position=currentPosition +10;
if(position>duration){
position=duration -1;
}
//执行快进
wx.seekBackgroundAudio({
position: position
});
//给出一个友情提示,在实际应用中,请删除!!!
wx.showToast({title:"快进10s",duration:500});
}
}else{
//给出一个友情提示,在实际应用中,请删除!!!
wx.showToast({title:"音乐未播放",duration:800});
}
}
})
},
//音乐播放状态
onAudioState:function(){
let that=this;
wx.onBackgroundAudioPlay(function(){
//当wx.playBackgroundAudio()执行时触发
//改变coverImg 和播放状态
that.setData({isPlaying:true,changedImg:true});
console.log( "on play");
});
wx.onBackgroundAudioPause(function(){
//wx.pauseBackgroundAudio()执行时触发
//仅改变播放状态
that.setData({isPlaying:false});
console.log("on pause");
});
wx.onBackgroundAudioStop(function(){
//当音乐自行播放结束时触发
//改变 coverImg 和播放状态 都有二者
that.setData({lisPlaying:false,changedImg:false});
console.log("on stop");
});
}
},)
6.3 文件API
从网络上下载或录音的文件都是临时保存的,若要持久保存,需要用到文件API; 文件API提供了打开,保存,删除,等操作本地文件的能力,主要包括以下5个API接口:
wx.saveFile(Object) 用于保存本地
wx.getSaveFileList(Object) 用于获取本地已保存的文件列表
wx.getSaveFileInfo(Object) 用于获取本地文件的文件信息
wx.removeSaveFile(Object) 用于删除本地存储的文件
wx.openDocument(Object) 用于新开页面打开文档,支持格式:doc , xls , ppt , pdf , docx , xlsx , ppts
1. 保存文件
wx.saveFile(Object) 用于保存文件;参数如下:
示例代码如下:
//js
page({
data:{
},
})
2. 获取本地文件列表
wx.getSaveFileList(Object) 接口
如果调用成功,则返回文件的本地路径,文件大小和文件保存时的时间戳()参数如下:
示例代码:
//js
page({
data:{
}
},
wx.getSavedFileList({
success:function(res){
that.setData({
fileList:res.fileList
})
}
})
)
3. 获取本地文件的文件信息
wx.getSaveFileInfo(Object) 用于获取本地文件的文件信息,此接口只能用于获取已保存到本地的文件,若需要获取临时文件信息,则使用 wx.getFileInfo(Object) 接口;
参数如表:
代码如下:
//js
page({
data:{
}
},
wx.chooseImage({
count:1,
sizeType:['original','compressed'],
sourceType:['camera','album'],
success:function(res){
var temFilePaths = res.tempFilePaths[0]
wx.saveFile({
tempFilePath : tempFilePaths,
success:function(res){
var saveFilePath = res.saveFilePath;
wx.getSavedFileInfo({
filePath: saveFilePath,
success:function(res){
console.log(res.size)
}
})
}
})
}
})
)
4. 删除本地文件
wx.removeSaveFile(Object) 用于删除本地存储的文件;参数如表:
示例代码:
//js
page({
data:{
}
},
wx.getSavedFileList({
success:function(res){
if(res.fileList.length > 0){
wx.removeSavedFile({
filePath:res.fileList[0].filePath,
complete:function(res){
console.log(res)
}
})
}
}
})
)
5 . 打开文档
wx.openDocument(Object)接口 用于新开页面打开文档,支持格式:doc , xls , ppt , pdf , docx , xlsx , ppts;参数如表:
示例代码如下:
//js
page({
data:{
}
},
wx.downloadFile({
url: "http://localhost/fm2.pdf",
success:function(res){
var tempFilePath = res.tempFilePath;
wx.openDocument({
filePath: tempFilePath,
success:function(res){
console.log("打开成功")
}
})
}
})
)
6.4 本地数据及缓存 API
wx.setStorage(object) 或 wx.setStorageSync(key,data) 接口 用于设置缓存数据
wx.getStorage(object) 或 wx.getStorageSync(key) 接口 用于获取缓存数据
wx.removeStorage(object) 或 wx.removeStorageSync(key,data) 接口 用于删除指定缓存数据
wx.clearStorage(object) 或 wx.clearStorageSync(key,data) 接口 用于清除缓存数据
其中,带Sync后缀的为同步接口,不带Sync后缀的为异步接口
6.4.1 保存数据
wx.setStorage(object) 或 wx.setStorageSync(key,data) 接口 将数据存储到本地缓存接口指定的Key中,接口执行后会覆盖原来key对应的内容:参数如下:
示例代码:
Page({
data:{},
// 保存数据 异步 js文件
wx.setStorage({
key:'name',
data:'sdy',
success:function(res){
console.log(res)
}
})
})
page({
data:{
},
// 保存数据 同步 js文件
wx.setStorageSync('age', '25')
})
6.4.2 获取数据
1.wx.getStorage(object) 接口是从本地缓存中异步获取指定key对应的内容;参数如下:
示例代码:
page({
data:{
},
wx.getStorage({
key:'name',
success:funtion(res){
console.log(res.data)
}
})
})
2.wx.getStorageSync(key)从本地缓存中同步获取指定key对应的内容;其参数只有key;
示例代码;
page({
try{
var value = wx.getStorageSync('age')
if(value){
console.log("获取成功" + value)
}
}catch(e){
consloe.log("获取失败")
}
})
6.4.3 删除数据
1 . wx.removeStorage(Object) 接口用于从本地缓存中异步移除指定 KEY ,参数如下:
示例代码:
page({
wx.removeStorage({
key:'name',
success:funtion(res){
console.log("删除成功")
},
fail:funtion(){
console.log("删除失败")
}
})
})
2. wx.removeStorageSync(key) 接口用于从本地缓存中同步移除指定 KEY对应的内容
示例代码
page({
try{
wx.removeStorageSync('name')
}catch(e){
console("删除" + name +"成功")
}
})
6.4.4 清空数据
1.wx.clearStorage() 接口用于异步清理本地数据缓存,没有参数
示例代码:
page({
wx.getStorage({
key:'name'
success:funtion(res){
wx.clearStorage() //清理本地数据缓存
}
})
})
2.wx.clearStorage() 接口用于同步清理本地数据缓存
示例代码:
page({
try{
wx.clearStorageSync()
}catch(e){
}
})
6.5 位置信息API
小程序可以通过位置信息API来获取或显示本地位置信息,小程序支持WGS84和GC
标准,WGS84标准为地球坐标系,是国际上通用的坐标系;GCj02标准是中国国家测绘局
定的地理信息系统的坐标系统,是由WGS84坐标系经加密后的坐标系,又称为火星坐标系
默认为WGS84标准,若要查看位置需要使用GCj02标准。主要包括以下3个API接口.
wx.getLocation(Object)接口 用于获取位置信息。
wx.chooseLocation(Object)接口用于选择位置信息。
wx.openLocation(Object)接口 用于通过地图显示位置。
6.5.1 获取位置信息
wx.getLocation(Object)接口用于获取当前用户的地理位置、速度,需要用户开启定位功能,当用户离开小程序后,无法获取当前的地理位置及速度,当用户点击“显示在聊天顶部”时,可以获取到定位信息,其相关参数如表所示:
wx.getLocation(Object) 调用成功后,返回的参数如表:
示例代码:
page({
data:{
},
wx.getLocation({
type:'wgs84',
success:funtion(res){
console.log("经度"+res.longitude);
console.log("纬度"+res.latitude);
console.log("速度"+res.longitude);
console.log("位置的精确度"+res.accuracy);
console.log("水平精确度"+res.horizontalAccuracy);
console.log("垂直精确度"+res.verticalAccuracy);
}
})
})
6.5.2 选择位置信息
wx.chooseLocation(Object)接口 用于在打开的地图中选择位置,用户选择位置后可返回当前位置的名称,地址,经纬度信息;参数如下:
wx.chooseLocation(Object)调用成功后,返回的参数:
示例代码:
page({
data{
},
wx.chooseLocation({
success:funtion(res){
console.log("位置的名称:"+name)
console.log("位置的地址:"+res.address)
console.log("位置的经度:"+res.longitude)
console.log("位置的纬度:"+res.latitude)
}
})
})
6.5.3 显示位置信息
wx.openLocation(Object)接口用于在微信内置地图中显示信息,参数如下:
示例代码:
page({
data{},
wx.getLocation({
type:'gc102',
success:function(res){
var latiude =res.latitude
var longitude = res.longitude
wx.openLocation({
latitude: latitude,
longitude: longitude,
scale:10,
name:'智慧国际酒店',
address:'西安市长安区西长安区300号'
})
}
})
})
6.6 设备相关API
设备相关的接口用于获取设备相关信息,主要包括系统信息、网络状态、拨打电话及主
码等。主要包括以下5个接口API:
wx. getSystemInfo(Object)接口、wx.getSystemInfoSyne()接口 用于获取系统信息
wx. getNetworkType(Object)接口 用于获取网络类型。
wx.onNetworkStatusChange(CallBack)接口 用于监测网络状态改变。
wx.makePhoneCall(Object)接口 用于拨打电话。
wx.scanCode(Object)接口 用于扫描二维码。
6.6.1 获取系统信息
wx. getSystemInfo(Object)接口、wx.getSystemInfoSync()接口分别用于异步和同步获取系 运行结果如图6-9所示统信息。其相关参数如表6-27所示。
wx. getSystemInfo(Object)接口、wx.getSystemInfoSync()接口调用成功后,返回系统相关信息,如表:
示例代码:
page({
data:{},
wx.getSystemInfo({
success:function(res)
console.log("手机型号:"+res.model)
console.log("设备像素比:"+res.pixelRatio)
console.1og(“窗口的宽度:” + res.windowwidth)
console.1og(“窗口的高度:” res.windowHeight)
console.log("微信的版本号:”+res. version)
console.log(“操作系统版本:"+res.system)
console.log(“客户端平台:"+res.platform)
})
6.6.2 网络状态
wx.getNetworkType(Object)用于获取网络类型,参数如表:
如果wx.getNetworkType() 接口被成功调用,则返回网络类型包,有 wifi,2G,3G,4G,unknown,none(无网络)
示例代码:
page({
wx.getNetworkType({
success:function(res){
console.log(res.networkType)
}
})
})
2. 监听网络状态变化
wx.onNetworkStatusChange(CallBack)接口用于监听网络状态变化,当网络状态变化时,返回当前网络状态类型及是否有网络连接;
示例代码:
page({
wx.onNetworkStatusChange(funtion(res){
console.log("网络是否有连接"+res.isConnected)
console.log("变化后的网络类型"+res.networkType)
})
})
6.6.3 拨打电话
wx.makePhoneCall(Object)接口用于实现调用手机拨打电话,参数如下:
示例代码:
wx.makePhoneCall({
phoneNumber:'110' //需要拨打的电话号码
})
6.6.4 扫描二维码
wx.scanCode(object)接口用于调起客户端扫码界面,扫码成功后返回相应的内容;参数如下:
扫码成功后,返回的数据
示例代码:
page({
//允许从相机和相册扫码
wx.scanCode({
success:(res) => {
console.log(res.result)
console.log(res.scanType)
console.log(res.charSet)
console.log(res.path)
}
})
//允许从相机扫码
wx.scanCode({
onlyFromCamera:true,
success:(res) => {
consolee.log(res)
}
})
})