用户工具

站点工具


mina:api_interface

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
mina:api_interface [2020/08/22 12:34] – [后台进行交互] sabertoymina:api_interface [未知日期] (当前版本) – 外部编辑 (未知日期) 127.0.0.1
行 1: 行 1:
 ====== 6.API 接口 ====== ====== 6.API 接口 ======
 +
 +[[https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html|微信开放文档API]]
 +
 +===== -#1 类型 =====
 +
 +==== - 事件监听 API ====
 +
 +以<wrap em> on</wrap> 开头的 API 用来监听某个事件是否触发,如:wx.onSocketOpen,wx.onCompassChange 等。
 +
 +接受一个<wrap hi>回调函数</wrap>作为参数,当事件触发时会调用这个回调函数,并将相关数据以参数形式传入。
 +
 +<code javascript>
 +wx.onCompassChange(function (res) {
 +  console.log(res.direction)
 +})
 +</code> 
 +
 +==== - 同步 API ====
 +
 +以 Sync 结尾的 API 都是同步 API, 如 wx.setStorageSync,wx.getSystemInfoSync 等。
 +
 +同步 API 的执行结果可以通过函数返回值直接获取,如果执行出错会抛出异常。
 +
 +<code javascript>
 +try {
 +  wx.setStorageSync('key', 'value')
 +} catch (e) {
 +  console.error(e)
 +}
 +</code> 
 +
 +==== - 异步 API ====
 +
 +大多数 API 都是异步 API,如 wx.request,wx.login 等。这类 API 接口通常都接受一个 Object 类型的参数。
 +
 +[[https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/api.html#API|Object 参数说明]]
 +
 +[[https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/api.html#API|回调函数的参数]]
 +
 +success,fail,complete 函数调用时会传入一个 Object 类型参数
 +
 +==== - 异步API返回Promise ====
 +
 +异步 API 支持 callback & promise 两种调用方式。
 +
 +<code javascript>
 +// callback 形式调用
 +wx.chooseImage({
 +  success(res) {
 +    console.log('res:', res)
 +  }
 +})
 +</code>
 +
 +<code javascript>
 +// promise 形式调用
 +wx.chooseImage().then(res => console.log('res: ', res))
 +</code>
  
 ===== API发起请求 wx.request ===== ===== API发起请求 wx.request =====
行 98: 行 156:
 </code> </code>
  
-==== 联网框架Retrofit 后台进行交互 ====+==== 封装公共参数 ====
  
 [[https://www.jianshu.com/p/c732123feadd|小程序封装wx.request]] [[https://www.jianshu.com/p/c732123feadd|小程序封装wx.request]]
 +
 +===== wx.setStorageSync =====
 +
 +  * 参数 string key 本地缓存中指定的 key
 +  * any data 需要存储的内容。只支持原生类型、Date、及能够通过JSON.stringify序列化的对象。
 +
 +<code javascript>
 +try {
 +  wx.setStorageSync('key', 'value')
 +} catch (e) { }
 +</code>
 +
 +使用场景
 +
 +小程序在获取用户授权后,获取用户的昵称和头像且会从数据库查询两个值显示到首页页面。
 +已经取得授权的情况下刷新,可以不弹框直接获取昵称和头像。此时也需要将数据库中的值显示到首页页面。
 +显然,再次向后台发出请求,获取数据库中的值是无法实现的。因为在页面显示的变量名是固定的,两次请求返回的值赋给同一个变量无法实现,且网络请求的先后顺序也不能确定。
 +
 +使用
 +
 +此种情况,就需要将首次查询(点击授权按钮)的值存入到本地缓存中,
 +当再次刷新时,将缓存中的值显示到页面上。
 +[[https://blog.csdn.net/java13245/article/details/103639697|微信小程序:数据缓存及使用(wx.setStorageSync(string key, any data), wx.getStorageSync(string key))]]
 +
 +
 +===== wx.getStorageSync =====
 +
 +从本地缓存中获取指定 key 的内容,wx.getStorage 的同步版本 [[https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.getStorageSync.html|any wx.getStorageSync(string key)]]
 +
 +
 +  * 参数 string key  本地缓存中指定的 key
 +  * 返回值 any data key对应的内容
 +
 +<code javascript>
 +try {
 +  var value = wx.getStorageSync('key')
 +  if (value) {
 +    // Do something with return value
 +  }
 +} catch (e) {
 +  // Do something when catch error
 +}
 +</code>
  
 ===== 媒体 ===== ===== 媒体 =====
mina/api_interface.1598070841.txt.gz · 最后更改: 2020/08/22 12:34 (外部编辑)