1、微信小程序开发( 六)第六章 APIAPI 框架总览( 绘图 API 专列章学习,暂略)网络 API媒体 API数据 API位置 API窗口 API绘图 API开放 API设备 API1 Wx.request2 Wx.uploadFile3 Wx.downloadFile4 Wx.connectSocket 7 onSocketOpen|onSocketError5 Wx.sendSocketMessage 8 onSocketMessage6 closeSocke onSocketClose1 Wx.closeImage2 Wx.previewImage3 Wx.startRecord4 W
2、x.stopRecord5 Wx.playbackgroundvoice,audio 10 onBackgroundAudioPlay6 Wx.pausebackgroundvoice,audio11 onBackgroundAudioPause7 Wx.stopbackgroundvoice,audio 12 onBackgroundAudioStop8 Wx.chooseVideo9 Wx.saveFile1 Wx.getStorage2 Wx.setStorage3 Wx.clearStoage1 Wx.getLocation2 Wx.openLocation1 Wx.getNetWor
3、kType 3 onAccelerometerChange2 Wx.getSystemInfo 4 onCompassChange1 Wx.login2 Wx.getUserInfo3 Wx.requestPayment1 Wx.navigateTo 7 Wx.hideKeyBoard2 Wx.navigateBack 8 Wx.stopPulldownFresh3 Wx.directTo 9 Wx.setNavigationBarTitle4 Wx.createAnimation 10 wx.showNavigationBarLoading5 Wx.createContext 11 wx.h
4、ideNavigationBarLoading6 Wx.drawCanvas第 1 节 网络 API1. 发送请求:wx.request(object)+数据请求Wx.request(url:url,data:object,method:get|post,dataType:json,header:content-type:application/json,success:function(res)var data=res.data,fail:function(),complate:function()2. 上传下载:wx.upload(object)|wx.download(object)+选
5、取一个图片上传Wx.chooseImage(Success:function(res)Var tmp=res.tempFilePathsWx.uploadFile(url:url,filePath:tmp0,name:”file”,formData:user:test)+下载一段音乐播放Wx.downloadFile(url:url,type:audio,success:function(res)wx.playVoice(filePath:res.tmpFilePath)3. 嵌套字:+连接Wx.connectSocket(url:url,data:data,header:,method:ge
6、t|post)+打开Wx.onSocketOpen(function(res)+出错Wx.onSocketError(function(res)+发数据Wx.sendSocketMessage(data:msg)+发消息(回调)Wx.onSocketMessage(function(res)+关闭Wx.closeSocket(url:url)+关闭(回调)Wx.onSocketClose(function(res)第 2 节 媒体 API1. 图片:+选图Wx.chooseImage(count:1,sizetype:,sourceType:album,camera,success:funct
7、ion(res)+预览Wx.previewImage(current:,urls:)2. 录音:+录音Wx.startRecord(success:function(),fail:function()+停止Wx.stopRecord()3. 音频控制:+播放Wx.playVoice(filePath:xxxx,comlete:function()+暂停Wx.pauseVoice()+停止Wx.stopVoice()4. 音乐控制:+获状态Wx.getBackgroundAudioPlayState(success:function(res)res.status|dataUrl|currentP
8、osition|duration)+播放Wx.playBackgroundAudio(dataUrl:xx,title:xx,coverImgUrl:xx)+暂停Wx.pauseBackgroundAudio()+定位Wx.seekBackgroundAudio(position:60)+停止Wx.stopBackgroundAudion()5. 视频:+表现层get+逻辑层Page(Data:src:xxx,getVideo:function()var that=this;wx.chooseVideo(sourceType:,success:function(res)that.setData
9、(src:res.tempfilePath)6. 音频组件控制:+创建上下文Var ctx=wx.createAudioContext(audioId)+播放Ctx.paly()+暂停Ctx.pause()+进到Ctx.seek(n)+从头Ctx.seek(0)+停止Ctx.stop()7. 视频组件控制:+创建上下文Var ctx=wx.createVedioContext(videoId)+发送弹幕Ctx.sendDanmu(text:xxxx,color:#xxxxxx)8. 文件:+保存文件Wx.saveFile(tempFilePath:xxx,success:function(re
10、s)+获已保存文件列表Wx.getSavedFileList(success:function(res)var list=res.fileList)+获已保存文件信息Wx.getSavedFileInfo(filePath:xxx,success:function(res)+移除已保存文件Wx.removeSavedFile(filePath:xxx,complete:function(res)+打开文件Wx.openDocument(filePath:xxx,success:function(res)第 3 节 数据 API+设置数据Wx.setStorage(key:xxx,value:x
11、xx)+获取数据Wx.getStorage(key:xxx,success:function(res)+清空数据Wx.clearStorage()+设;置数据(异步)Wx.setStorageSync(key:xxx,value:xxx)+获取数据(异步)Wx.getStorageSync(key:xxx,success:function(res)+清空数据(异步)Wx.clearStorageSync()第 4 节 位置 API1. 位置:+获取位置Wx.getLocation(type:xxx,success:function(res)+打开位置Wx.openLocation(latitu
12、de:xx,longItude:xx,scale:xx)+选择位置Wx.chooseLocation(success:function(res)2. 地图组件:+创建上下文Var ctx=wx.createMapContext(mapId)+中心打开Ctx.openCenterLocation(success:function(res)+移动位置Ctx.moveToLocation(success:function(res)第 5 节 设备 API1. 系统信息:+同步获取信息wx.getSystemInfo(success: function(res) console.log(res.mod
13、el)console.log(res.pixelRatio)console.log(res.windowWidth)console.log(res.windowHeight)console.log(res.language)console.log(res.version)console.log(res.platform)+异步获取信息wx.getSystemInfo(success:function(res)2. 网络类型:+网络类型wx.getNetworkType(success: function(res) var networkType = workType / 返回网络类型 2g,3
14、g,4g,wifi, none, unknown)3. 重力感应:+重力感应wx.onAccelerometerChange(function(res) console.log(res.x)console.log(res.y)console.log(res.z)4. 罗盘指南:+罗盘指南wx.onCompassChange(function (res) console.log(res.direction)5. 拨打电话:+拨打电话wx.makePhoneCall(phoneNumber: 15093843683)6. 扫码:+扫码wx.scanCode(success: function(re
15、s) console.log(res)7. 剪贴板:+加入剪贴板Wx.setClipboadData(data:xx,success:function(res)+读取剪贴板Wx.getClipboardData(success:function(res)var data=res.data)8. 篮牙:+篮牙wx.openBluetoothAdapter( success: function (res) console.log(res) )第 6 节 窗口 API1. 互动操作:+自消窗口Wx.showToast(title:xx,icon:xx,duration:xx)+对话框Wx.showD
16、ialog(title:xx)+对话框(模态)Wx.showModal(title:xx,content:xx,success:function(res)+活动页签Wx.showActionSheet(itemList:,success:function(res)2. 导航设置:+设标题Wx.setNavigationBarTitle(title:xxx)+显动画Wx.showNavigationBarLoading()+隐动画Wx.hideVavigationBarLoading()3. 导航操控:+转到Wx.vavigatorTo(url:xx,success:function(res)+
17、重定向Wx.redirectTo(url:xx;success:funtion(res)+重载Wx.reLaunch(url:xx,success:function(res)+切页Wx.switchTab(url:xxx)+返回Wx.navigatorBack(delta:xx)4. 动画操作:+创建动画Var ani=wx.createAnimation(transformOrign:xx,duration:xx,timingFunction:xx)+具体方法(略)第 7 节 绘图 API详述于第七章.第 8 节 开放接口 API1. 小程序登录 API=登录微信:+登录微信Wx.login
18、(success:function()+检查会话Wx.checkSession(success:function(),fail:function()=签名验证|加密解密为了确保开放接口返回用户数据的安全性,微信会对明文数据进行签名。开发者可以根据业务需要对数据包进行签名校验,确保数据的完整性。签名校验算法涉及用户的 session_key,通过 wx.login 登录流程获取用户session_key,并自行维护与应用自身登录态的对应关系。通过调用接口(如 wx.getUserInfo)获取数据时,接口会同时返回 rawData、signature,其中 signature = sha1( rawData + session_key )开发者将 signature、rawData 发送到开发者服务器进行校验。服务器利用用户对应的 session_key 使用相同的算法计算出签名 signature2 ,比对 signature 与 signature2 即可校验数据的完整性。