网络

发起请求

Taro.request(OBJECT)

发起网络请求,支持 Promise 化使用。

OBJECT 参数说明:

参数 类型 必填 默认值 说明
url String 开发者服务器接口地址
data Object/String/ArrayBuffer 请求的参数
header Object 设置请求的 header,header 中不能设置 Referer。
method String GET (需大写)有效值:OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
dataType String json 如果设为 json,会尝试对返回的数据做一次 JSON.parse
responseType String text 设置响应的数据类型。合法值:text、arraybuffer
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

H5 端附加参数说明:

参数 类型 必填 默认值 说明
jsonp String/Boolean 使用 jsonp,且使用此值作为回调函数名
jsonpCache Boolean false jsonp 请求 url 是否需要被缓存
mode String same-origin 是否允许跨域请求。有效值:no-cors, cors, same-origin
credentials String omit 是否携带 Cookie。有效值:include, same-origin, omit
cache String default 缓存模式。有效值:default, no-cache, reload, force-cache, only-if-cached

success 返回参数说明:

参数 类型 说明
data Object/String/ArrayBuffer 开发者服务器返回的数据
statusCode Number 开发者服务器返回的 HTTP 状态码
header Object 开发者服务器返回的 HTTP Response Header

示例代码:

  1. import Taro from '@tarojs/taro'
  2. Taro.request({
  3. url: 'http://localhost:8080/test',
  4. data: {
  5. foo: 'foo',
  6. bar: 10
  7. },
  8. header: {
  9. 'content-type': 'application/json'
  10. }
  11. })
  12. .then(res => console.log(res.data))

API 支持度

API 微信小程序 H5 ReactNative 支付宝小程序 百度小程序
Taro.request ✔️ ✔️ ✔️ ✔️ ✔️

上传、下载

Taro.uploadFile(OBJECT)

使用方式同 wx.uploadFile,支持 Promise 化使用。

示例代码:

  1. import Taro from '@tarojs/taro'
  2. const uploadTask = Taro.uploadFile(params).then(...)

Taro.downloadFile(OBJECT)

使用方式同 wx.downloadFile,支持 Promise 化使用。

示例代码:

  1. import Taro from '@tarojs/taro'
  2. Taro.downloadFile(params).then(...)

API 支持度

API 微信小程序 H5 ReactNative 支付宝小程序 百度小程序
Taro.uploadFile ✔️ ✔️ ✔️ ✔️
Taro.downloadFile ✔️ ✔️ ✔️ ✔️

WebSocket

Taro.connectSocket(OBJECT)

创建一个 WebSocket 链接。

支持存在最多两个 WebSocket 链接,每次成功调用 Taro.connectSocket 会返回一个新的 SocketTask

OBJECT 参数说明:

参数 类型 必填 说明
url String 开发者服务器接口地址,必须是 wss 协议
header Object HTTP Header , header 中不能设置 Referer
method String 默认是 GET,有效值:OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
protocols StringArray 子协议数组
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

示例代码:

  1. import Taro from '@tarojs/taro'
  2. Taro.connectSocket({
  3. url: 'ws://echo.websocket.org/echo',
  4. success: function () {
  5. console.log('connect success')
  6. }
  7. }).then(task => {
  8. task.onOpen(function () {
  9. console.log('onOpen')
  10. task.send({ data: 'xxx' })
  11. })
  12. task.onMessage(function (msg) {
  13. console.log('onMessage: ', msg)
  14. task.close()
  15. })
  16. task.onError(function () {
  17. console.log('onError')
  18. })
  19. task.onClose(function (e) {
  20. console.log('onClose: ', e)
  21. })
  22. })

SocketTask

WebSocket 任务,可通过 wx.connectSocket() 接口创建返回。

属性

socketTask.readyState: websocket 当前的连接状态。

socketTask.CONNECTING: websocket 状态值:连接中。

socketTask.OPEN: websocket 状态值:已连接。

socketTask.CLOSING: websocket 状态值:关闭中。

socketTask.CLOSED: websocket 状态值:已关闭。

socketTask.ws: 浏览器 websocket 实例。(h5 端独有

方法

SocketTask.send(OBJECT)

通过 WebSocket 连接发送数据。

OBJECT 参数说明:

参数 类型 必填 说明
data String/ArrayBuffer 需要发送的内容
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

SocketTask.close(OBJECT)

关闭 WebSocket 连接。

OBJECT 参数说明:

参数 类型 必填 说明
code Number 一个数字值表示关闭连接的状态号,表示连接被关闭的原因。如果这个参数没有被指定,默认的取值是 1000 (表示正常连接关闭)
reason String 一个可读的字符串,表示连接被关闭的原因
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

SocketTask.onOpen(CALLBACK)

监听 WebSocket 连接打开事件。

SocketTask.onClose(CALLBACK)

监听 WebSocket 连接关闭事件。

CALLBACK 返回参数

参数 类型 说明
code Number 关闭连接的状态号
reason String 连接被关闭的原因

SocketTask.onError(CALLBACK)

监听 WebSocket 错误。

CALLBACK 返回参数

参数 类型 说明
errMsg String 错误信息

SocketTask.onMessage(CALLBACK)

监听 WebSocket 接受到服务器的消息事件。

CALLBACK 返回参数

参数 类型 说明
data String/ArrayBuffer 服务器返回的消息

Taro.onSocketOpen

@Deprecated 请使用 SocketTask.onOpen

Taro.onSocketError

@Deprecated 请使用 SocketTask.onError

Taro.sendSocketMessage

@Deprecated 请使用 SocketTask.send

Taro.onSocketMessage

@Deprecated 请使用 SocketTask.onMessage

Taro.closeSocket

@Deprecated 请使用 SocketTask.close

Taro.onSocketClose

@Deprecated 请使用 SocketTask.onClose

API 支持度

API 微信小程序 H5 ReactNative 支付宝小程序 百度小程序
Taro.connectSocket ✔️ ✔️ ✔️ ✔️ ✔️
SocketTask ✔️ ✔️ ✔️ ✔️ ✔️
Taro.onSocketOpen ✔️ ✔️ ✔️
Taro.onSocketError ✔️ ✔️ ✔️
Taro.sendSocketMessage ✔️ ✔️ ✔️
Taro.onSocketMessage ✔️ ✔️ ✔️
Taro.closeSocket ✔️ ✔️ ✔️
Taro.onSocketClose ✔️ ✔️ ✔️