W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
解釋:發(fā)起網(wǎng)絡(luò)請求
方法參數(shù):Object
Object參數(shù)說明:
參數(shù)名 | 類型 | 必填 | 默認(rèn)值 | 說明 |
---|---|---|---|---|
url | String | 是 | 開發(fā)者服務(wù)器接口地址 | |
data | Object/String | 否 | 請求的參數(shù) | |
header | Object | 否 | 設(shè)置請求的 header,header 中不能設(shè)置 Referer | |
method | String | 否 | GET (需大寫) | 有效值:OPTIONS, GET, HEAD, POST, PUT, DELETE |
dataType | String | 否 | json | 如果設(shè)為 json,會嘗試對返回的數(shù)據(jù)做一次 JSON.parse |
success | Function | 否 | 收到開發(fā)者服務(wù)成功返回的回調(diào)函數(shù) | |
fail | Function | 否 | 接口調(diào)用失敗的回調(diào)函數(shù) | |
complete | Function | 否 | 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
success 返回參數(shù)說明:
參數(shù) | 類型 | 說明 |
---|---|---|
data | Object/String | 開發(fā)者服務(wù)器返回的數(shù)據(jù) |
statusCode | Number | 開發(fā)者服務(wù)器返回的 HTTP 狀態(tài)碼 |
header | Object | 開發(fā)者服務(wù)器返回的 HTTP Response Header |
data 數(shù)據(jù)說明:
最終發(fā)送給服務(wù)器的數(shù)據(jù)是 String 類型,如果傳入的 data 不是 String 類型,會被轉(zhuǎn)換成 String 。轉(zhuǎn)換規(guī)則如下:
1、對于 header[‘content-type’] 為 application/json 的數(shù)據(jù),會對數(shù)據(jù)進(jìn)行 JSON 序列化。
2、對于 header[‘content-type’] 為 application/x-www-form-urlencoded 的數(shù)據(jù),會將數(shù)據(jù)轉(zhuǎn)換成 query string (encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)…)。
示例:
swan.request({
url: '/example/abc', //開發(fā)者服務(wù)器接口地址
method: 'GET',
dataType: 'json',
data: {
key1: 'value1' ,
key2: {}
},
header: {
'content-type': 'application/json' // 默認(rèn)值
},
success: function (res) {
console.log(res.data);
},
fail: function (err) {
console.log("錯誤碼:" + err.errCode);
console.log("錯誤信息:" + err.errMsg);
}
});
Bug & Tip
1、tip: content-type 默認(rèn)為 ‘a(chǎn)pplication/json’。
2、tip: url 中不能有端口。
解釋:將本地資源上傳到開發(fā)者服務(wù)器,客戶端發(fā)起一個 HTTPS POST 請求,其中 content-type 為 multipart/form-data
方法參數(shù):Object
Object參數(shù)說明:
參數(shù) | 類型 | 必填 | 說明 |
---|---|---|---|
url | String | 是 | 開發(fā)者服務(wù)器 url |
filePath | String | 是 | 要上傳文件資源的路徑 |
name | String | 是 | 文件對應(yīng)的 key , 開發(fā)者在服務(wù)器端通過這個 key 可以獲取到文件二進(jìn)制內(nèi)容 |
header | Object | 否 | HTTP 請求 Header, header 中不能設(shè)置 Referer |
formData | Object | 否 | HTTP 請求中其他額外的 form data |
success | Function | 否 | 接口調(diào)用成功的回調(diào)函數(shù) |
fail | Function | 否 | 接口調(diào)用失敗的回調(diào)函數(shù) |
complete | Function | 否 | 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
success返回參數(shù)說明:
參數(shù) | 類型 | 說明 |
---|---|---|
data | String | 開發(fā)者服務(wù)器返回的數(shù)據(jù) |
statusCode | Number | 開發(fā)者服務(wù)器返回的 HTTP 狀態(tài)碼 |
示例:
swan.chooseImage({
success: function (res) {
swan.uploadFile({
url: 'https://smartapp.baidu.com/xxx', // 開發(fā)者服務(wù)器 url
filePath: res.tempFilePaths[0], // 要上傳文件資源的路徑
name: 'myfile',
success: function (res) {
console.log(res.statusCode);
},
fail: function (err) {
console.log("錯誤碼:" + err.errCode);
console.log("錯誤信息:" + err.errMsg);
}
});
}
});
返回值: 返回一個uploadTask對象,通過uploadTask,可監(jiān)聽上傳進(jìn)度變化事件,以及取消上傳任務(wù)。
uploadTask 對象的方法列表:
方法 | 類型 | 說明 |
---|---|---|
onProgressUpdate | callback | 監(jiān)聽上傳進(jìn)度變化 |
abort | 中斷上傳任務(wù) |
onProgressUpdate 返回參數(shù)說明:
參數(shù) | 類型 | 說明 |
---|---|---|
progress | Number | 上傳進(jìn)度百分比 |
totalBytesSent | Number | 已經(jīng)上傳的數(shù)據(jù)長度,單位 Bytes |
totalBytesExpectedToSend | Number | 預(yù)期需要上傳的數(shù)據(jù)總長度,單位 Bytes |
示例:
const uploadTask = swan.uploadFile({
url: 'https://example.baidu.com/xxxx', //開發(fā)者服務(wù)器 url
filePath: res.tempFilePaths[0], // 要上傳文件資源的路徑
name: 'myfile',
success: function (res){
console.log(res.statusCode);
},
fail: function (err) {
console.log("錯誤碼:" + err.errCode);
console.log("錯誤信息:" + err.errMsg);
}
});
uploadTask.onProgressUpdate(res => {
console.log('上傳進(jìn)度', res.progress)
console.log('已經(jīng)上傳的數(shù)據(jù)長度', res.totalBytesSent)
console.log('預(yù)期需要上傳的數(shù)據(jù)總長度', res.totalBytesExpectedToSend)
});
uploadTask.abort(); // 取消上傳任務(wù)
解釋: 下載文件資源到本地,客戶端直接發(fā)起一個 HTTP GET 請求,返回文件的本地臨時路徑
方法參數(shù): Object
Object參數(shù)說明:
參數(shù) | 類型 | 必填 | 說明 |
---|---|---|---|
url | String | 是 | 下載資源的 url |
header | Object | 否 | HTTP 請求 Header,header 中不能設(shè)置 Referer |
success | Function | 否 | 下載成功后以 tempFilePath 的形式傳給頁面,res = {tempFilePath: ‘文件的臨時路徑’} |
fail | Function | 否 | 接口調(diào)用失敗的回調(diào)函數(shù) |
complete | Function | 否 | 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
注意: 文件的臨時路徑,在智能小程序本次啟動期間可以正常使用,如需持久保存,需在主動調(diào)用 swan.saveFile,才能在智能小程序下次啟動時訪問得到。
success返回參數(shù)說明:
參數(shù) | 類型 | 說明 |
---|---|---|
tempFilePath | String | 臨時文件路徑,下載后的文件會存儲到一個臨時文件 |
statusCode | Number | 開發(fā)者服務(wù)器返回的 HTTP 狀態(tài)碼 |
示例:
swan.downloadFile({
url: 'https://example.baidu.com/xxxx', //僅為示例,并非真實的資源
success: function (res) {
//下載成功
if (res.statusCode === 200) {
console.log("臨時文件路徑" + res.tempFilePath);
}
},
fail: function (err) {
console.log("錯誤碼:" + err.errCode);
console.log("錯誤信息:" + err.errMsg);
}
});
返回值: 返回一個 downloadTask 對象,通過 downloadTask ,可監(jiān)聽下載進(jìn)度變化事件,以及取消下載任務(wù)。
downloadTask 對象的方法列表:
方法 | 類型 | 說明 |
---|---|---|
onProgressUpdate | callback | 監(jiān)聽上傳進(jìn)度變化 |
abort | 中斷下載任務(wù) |
onProgressUpdate 返回參數(shù)說明:
參數(shù) | 類型 | 說明 |
---|---|---|
progress | Number | 下載進(jìn)度百分比 |
totalBytesWritten | Number | 已經(jīng)下載的數(shù)據(jù)長度,單位 Bytes |
totalBytesExpectedToWrite | Number | 預(yù)期需要下載的數(shù)據(jù)總長度,單位 Bytes |
示例:
const downloadTask = swan.downloadFile({
url: 'https://example.baidu.com/xxxx', //開發(fā)者服務(wù)器 url
success: function (res){
console.log(res.tempFilePath);
},
fail: function (err) {
console.log("錯誤碼:" + err.errCode);
console.log("錯誤信息:" + err.errMsg);
}
});
downloadTask.onProgressUpdate(res => {
console.log('下載進(jìn)度', res.progress);
console.log('已經(jīng)下載的數(shù)據(jù)長度', res.totalBytesWritten);
console.log('預(yù)期需要下載的數(shù)據(jù)總長度', res.totalBytesExpectedToWrite);
});
downloadTask.abort(); // 取消下載任務(wù)
Bug & Tip
1、tip: uploadFile 上傳文件大小限制為 25M。
解釋: 創(chuàng)建一個 WebSocket 連接。
參數(shù): Object
一個智能小程序同時只能有一個 WebSocket 連接,如果當(dāng)前已存在一個 WebSocket 連接,會替換成最新創(chuàng)建的WebSocket連接。
Object參數(shù)說明:
屬性名 | 類型 | 是否必須 | 說明 |
---|---|---|---|
url | String | 是 | 開發(fā)者服務(wù)器接口地址,必須是 wss 協(xié)議,且域名必須是后臺配置的合法域名 |
protocolsArray | Array | 否 | 子協(xié)議數(shù)組 |
success | Function | 否 | 接口調(diào)用成功的回調(diào)函數(shù) |
fail | Function | 否 | 接口調(diào)用失敗的回調(diào)函數(shù) |
complete | Function | 否 | 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
示例:
swan.connectSocket({
url: 'wss://example.baidu.com'
});
解釋: 監(jiān)聽 WebSocket 連接打開事件。
參數(shù): CALLBACK
示例:
swan.onSocketOpen(function () {
console.log('WebSocket連接已打開!');
}
});
解釋: 監(jiān)聽 WebSocket 錯誤
參數(shù): CALLBACK
示例:
swan.connectSocket({
url: 'wss://example.baidu.com'
});
swan.onSocketOpen(function (res) {
console.log('WebSocket連接已打開!');
});
swan.onSocketError(function (res) {
console.log('WebSocket連接打開失敗,請檢查!');
});
解釋: 通過 WebSocket 連接發(fā)送數(shù)據(jù),需要先 connectSocket,并在 onSocketOpen 回調(diào)之后才能發(fā)送。
參數(shù): Object
Object參數(shù)說明:
屬性名 | 類型 | 是否必須 | 說明 |
---|---|---|---|
data | String/ArrayBuffer | 是 | 需要發(fā)送的內(nèi)容 |
fail | Function | 否 | 失敗的回調(diào)函數(shù) |
complete | Function | 否 | 執(zhí)行完成的回調(diào)函數(shù) |
示例:
swan.sendSocketMessage({
data: 'this is swan',
complete: function () {
console.log(new Date().getTime() + ' :i am complete');
}
});
解釋: 監(jiān)聽 WebSocket 接受到服務(wù)器的消息事件
參數(shù): CALLBACK
示例:
swan.connectSocket({
url: 'wss://example.baidu.com'
});
swan.onSocketMessage(function (res) {
console.log('收到服務(wù)器內(nèi)容:' + res.data);
});
解釋: 關(guān)閉 WebSocket 連接。
參數(shù): Object
Object參數(shù)說明:
屬性名 | 類型 | 是否必須 | 說明 |
---|---|---|---|
code | Number | 否 | 一個數(shù)字值表示關(guān)閉連接的狀態(tài)號,表示連接被關(guān)閉的原因。如果這個參數(shù)沒有被指定,默認(rèn)的取值是1000 (表示正常連接關(guān)閉) |
reason | String | 否 | 一個可讀的字符串,表示連接被關(guān)閉的原因。這個字符串必須是不長于123字節(jié)的 UTF-8 文本(不是字符) |
success | Function | 否 | 成功的回調(diào)函數(shù) |
fail | Function | 否 | 失敗的回調(diào)函數(shù) |
complete | Function | 否 | 執(zhí)行完成的回調(diào)函數(shù) |
示例:
swan.closeSocket({
code: 1001,
reason: '網(wǎng)線被切了',
success: function () {
console.log('WebSocket 關(guān)閉');
}
});
解釋: 監(jiān)聽 WebSocket 關(guān)閉。
參數(shù): CALLBACK
示例:
swan.onSocketClose(function () {
console.log('WebSocket 已關(guān)閉');
});
解釋: WebSocket 任務(wù),可通過 swan.connectSocket() 接口創(chuàng)建返回。
SocketTask 方法
1、send(對應(yīng) swan.sendSocketMessage)
2、close(對應(yīng) swan.closeSocket)
3、onOpen(對應(yīng) swan.onSocketOpen)
4、onClose(對應(yīng) swan.onSocketClose)
5、onError(對應(yīng) swan.onSocketError)
6、onMessage(對應(yīng) swan.onSocketMessage)
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: