小程序提供的能力和常用API

本节分为三个部分:

  • 微信API
  • 开放能力
  • 基础组件

微信API

  • 网络请求
  • 本地存储
  • 文件系统

网络请求

  • HTTPS请求
  • 文件上传、下载
  • *Task(网络任务对象)

HTTPS请求

wx.request({
  url: 'test.php', //仅为示例,并非真实的接口地址
  data: {
    x: '',
    y: ''
  },
  header: {
    'content-type': 'application/json' // 默认值
  },
  method: 'POST',
  success: function(res) {
    console.log(res.data)
  },
  fail: function(res){
  }
})

wx.request包含一个请求对象,就完成了请求。

参数说明:

小程序提供的能力和常用API_第1张图片

要注意的是,开发时应不勾选校验域名、https证书等。

例子(定义了一个testNetwork事件,触发时发送网络请求):

testNetwork: function(event){
  wx.request({
    url: 'http://www.baidu.com',
    method: 'GET',
    header: {},
    success: function(res){
        console.log(res.data)
    },
    fail: function(res){
        console.log('request failed.')
    }
  })
}

网络请求一般是异步的,即,发送请求之后,success与fail的回调是异步的,立即执行wx.request后面的代码,当确认请求成功、失败后再执行回调。

传文件

    wx.uploadFile({
      url: 'https://example.weixin.qq.com/upload', //仅为示例,非真实的接口地址
      filePath: tempFilePaths[0],
      name: 'file',
      formData: {
        'user': 'test'
      },
      success (res){
        const data = res.data
        //do something
      }
    })

参数说明:

小程序提供的能力和常用API_第2张图片

下载文件

wx.downloadFile({
  url: 'https://example.com/audio/123', //仅为示例,并非真实的资源
  header: {},
  filePath: 'example.jpg',
  success (res) {
    // 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容
    if (res.statusCode === 200) {
      wx.playVoice({
        filePath: res.tempFilePath
      })
    }
  }
})

参数说明:

小程序提供的能力和常用API_第3张图片

网络任务对象

异步任务提交以后,需要对任务进行操作时,使用Task对象。

  • RequestTask(发起HTTPS请求时,得到)
  • UploadTask(上传文件时得到)
  • DownloadTask(下载文件时得到)
  • SocketTask(发起Socket请求时得到)

对于一个Task对象,我们可以:

  • 中断任务(取消上传)
  • 触发回调函数(上传10%、50%分别做哪些工作)
  • 关闭连接(取消http请求、socket请求)

本地存储

将数据存储在本地缓存中指定的key中,数据存储生命周期与小程序本身一致。

  • wx.setStorage(把数据保存在某个key当中)
  • wx.getStorage(把数据从某个key中取出来)
  • wx.removeStorage(删除某个key中的本地缓存)
  • wx.clearStorage(慎用,清除所有缓存)
wx.setStorage({
  key:"key",
  data:"value"
})

接受一个对象,指定key和value。

wx.getStorage({
  key: 'key',
  success (res) {
    console.log(res.data)
  }
})

接受一个对象,指定key和获取成功时的回调。

这也是异步的,也有同步API:

  • wx.getStorageSync(string key)
  • wx.setStorageSync(string key, any data)
try {
  var value = wx.getStorageSync('key')
  if (value) {
    // Do something with return value
  }
} catch (e) {
  // Do something when catch error
}
try {
  wx.setStorageSync('key', 'value')
} catch (e) { }

文件系统

  • 全局文件管理器
  • 文件的增删改查
  • 文件夹的操作
var fs = wx.getFileSystemManager()

上面的代码获取全局唯一的文件管理器,获得之后,就可以对文件进行增删改查了:

  • fs.saveFile
  • fs.removeSavedFile
  • fs.writeFile
  • fs.appendFile
  • fs.readFile

以及一些对文件夹的操作:

  • fs.mkdir
  • fs.rmdir
  • fs.isDirectory
  • fs.ifFile

开放能力

这是小程序对开发者最大的馈赠,让开发者有了触及广大用户的能力。

  • 用户数据
  • 推送消息
  • 运营数据

用户数据

  • 头像、昵称等公开信息——wx.getUserInfo()
  • openid等敏感数据

微信公众平台为了识别不同用户,对于每一个用户都将生成一个唯一的、安全的openid。在安全范围内,微信公众平台允许开发者获取openid,以便管理用户。

小程序提供的能力和常用API_第4张图片

通过wx.login()获取的code可以认为是小程序与微信公众平台间的session。(code是有时限的)

通过wx.request()向开发者服务器发送code。

开发者服务器通过appid和appsecret和code向微信接口服务获取session_key和openid。

通过session_key和openid,就可以对用户进行管理了。

推送消息

基于微信的通知渠道,小程序为开发者提供了可以高效触达用户的消息,以便形成小程序服务的闭环。

推送形式为服务通知号,点击查看详情可以跳转到小程序各个页面。

运营数据

  • 小程序管理后台——数据分析
  • 小程序数据助手(本身也是小程序)

基础组件

  • 视图容器——view、scroll-view、swiper、cover-view
  • 基础内容——text、icon、rich-text
  • 表单、导航——button、form、input

WeUI-WXSS

  • WeUI是一套同微信原生视觉体验一致的基础样式库
  • 微信官方设计团队为微信内网页和微信小程序量身设计
  • 包含button、view等等

如何使用它呢?

  • 下载开源的源码
  • 将源码中的weui.wxss拷贝到我们的项目目录thirdparty之下
  • 在全局的app.wxss中引入它:
@import 'thirdparty/weui.wxss'
  • 拷贝相应组件的wxml和js到自己的项目中
  • 基于weui的源码进行相应的改造

你可能感兴趣的:(小程序提供的能力和常用API)