|
導(dǎo)讀微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實現(xiàn)了應(yīng)用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應(yīng)用。小程序是一種不用下載就能使用的應(yīng)用,也是一... 微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實現(xiàn)了應(yīng)用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應(yīng)用。小程序是一種不用下載就能使用的應(yīng)用,也是一項門檻非常高的創(chuàng)新,經(jīng)過將近兩年的發(fā)展,已經(jīng)構(gòu)造了新的小程序開發(fā)環(huán)境和開發(fā)者生態(tài)。 這篇文章主要介紹了微信小程序之網(wǎng)絡(luò)請求簡單封裝實例詳解的相關(guān)資料,需要的朋友可以參考下微信小程序之網(wǎng)絡(luò)請求簡單封裝實例詳解 在微信小程序中實現(xiàn)網(wǎng)絡(luò)請求相對于Android來說感覺簡單很多,我們只需要使用其提供的API就可以解決網(wǎng)絡(luò)請求問題。
為了數(shù)據(jù)安全,微信小程序網(wǎng)絡(luò)請求只支持https,當(dāng)然各個參數(shù)的含義就不在細(xì)說,不熟悉的話可以;可以去閱讀官方文檔的網(wǎng)絡(luò)請求api,當(dāng)我們使用request時header的content-typ默認(rèn)是application/json,在文檔中指出method 的value必須是大寫,不過經(jīng)過測試,小寫也能請求成功。request默認(rèn)的超時時間是60s,如果我們想自定義超時時間,我們可以在app.json中加入下面代碼片段,分別設(shè)置request,socket,和上傳文件及下載文件的超時時間。 "networkTimeout": {
"request": 5000,
"connectSocket": 5000,
"uploadFile": 5000,
"downloadFile": 5000
}設(shè)置過超時時間,我們就開始封裝網(wǎng)絡(luò)請求,平時我們所接觸的網(wǎng)絡(luò)請求,一般會分為兩類,一類是在后臺運行的,沒有加載對話框提示,另一種就是有提示,如提示正在加載數(shù)據(jù),,那么我們就以此為線索來進(jìn)行封裝。先創(chuàng)建一個network的網(wǎng)絡(luò)請求工具類,然后 // 展示進(jìn)度條的網(wǎng)絡(luò)請求
// url:網(wǎng)絡(luò)請求的url
// params:請求參數(shù)
// message:進(jìn)度條的提示信息
// success:成功的回調(diào)函數(shù)
// fail:失敗的回調(diào)
function requestLoading(url, params, message, success, fail) {
console.log(params)
wx.showLoading({
title: message,
})
wx.request({
url: url,
data: params,
header: {
'content-type': 'application/x-www-form-urlencoded'
},
method: 'post',
success: function (res) {
//console.log(res.data)
wx.hideLoading()
if (res.statusCode == 200) {
success(res.data)
} else {
fail()
}
},
fail: function (res) {
wx.hideLoading()
fail()
},
complete: function (res) {
},
})
}上面函數(shù)很好理解,參數(shù)的含義已在代碼中解釋,在網(wǎng)絡(luò)請求開始前,先展示Loading對話框,提示用戶當(dāng)前網(wǎng)絡(luò)正在請求數(shù)據(jù),當(dāng)網(wǎng)絡(luò)請求成功或者失敗后調(diào)用wx.hideLoading()取消提示框的展示。在api中還提供了wx.showNavigationBarLoading()用于顯示當(dāng)前頁面的導(dǎo)航條加載動畫,那么如果我們想展示這個動畫可以在requestLoading執(zhí)行開始調(diào)用wx.showNavigationBarLoading(),然后在網(wǎng)絡(luò)請求成功或者失敗后調(diào)用wx.hideNavigationBarLoading()隱藏導(dǎo)航欄加載動畫。 當(dāng)網(wǎng)絡(luò)請求成功并且狀態(tài)碼為200時,將請求到的數(shù)據(jù)回調(diào)通過success(res.data)回調(diào)給我們的方法,在上面我們沒有對失敗原因進(jìn)行細(xì)分,當(dāng)然你也可以給失敗回調(diào)加個參數(shù),用于提示用戶失敗的原因,如res.statusCode ==500時提示服務(wù)器內(nèi)部錯誤,res.statusCode ==-1時提示請檢查網(wǎng)絡(luò),res.statusCode ==404,找不到地址等等。 然后我們在創(chuàng)建一個不顯示對話框,用戶后臺請求數(shù)據(jù)的請求函數(shù),為了少寫代碼,我們共用上面的函數(shù),如下 //不顯示對話框的請求
function request(url, params, success, fail) {
this.requestLoading(url, params, "", success, fail)
}我們看到我們最終還是調(diào)用的requestLoading,那么我們可以在該函數(shù)作下判斷,如果提示信息message==''就不顯示對話框。 最終的代碼 function request(url, params, success, fail) {
this.requestLoading(url, params, "", success, fail)
}
// 展示進(jìn)度條的網(wǎng)絡(luò)請求
// url:網(wǎng)絡(luò)請求的url
// params:請求參數(shù)
// message:進(jìn)度條的提示信息
// success:成功的回調(diào)函數(shù)
// fail:失敗的回調(diào)
function requestLoading(url, params, message, success, fail) {
console.log(params)
wx.showNavigationBarLoading()
if (message != "") {
wx.showLoading({
title: message,
})
}
wx.request({
url: url,
data: params,
header: {
//'Content-Type': 'application/json'
'content-type': 'application/x-www-form-urlencoded'
},
method: 'post',
success: function (res) {
//console.log(res.data)
wx.hideNavigationBarLoading()
if (message != "") {
wx.hideLoading()
}
if (res.statusCode == 200) {
success(res.data)
} else {
fail()
}
},
fail: function (res) {
wx.hideNavigationBarLoading()
if (message != "") {
wx.hideLoading()
}
fail()
},
complete: function (res) {
},
})
}
module.exports = {
request: request,
requestLoading: requestLoading
}使用就很簡單了,如下 //路徑根據(jù)自己項目路徑修改
var network = require("/utils/network.js")
getData:function(){
network.requestLoading(URL.MY_SCORE, that.data.params, '正在加載數(shù)據(jù)', function (res) {
//res就是我們請求接口返回的數(shù)據(jù)
console.log(res)
}, function () {
wx.showToast({
title: '加載數(shù)據(jù)失敗',
})
})
}以上就是微信小程序?qū)崿F(xiàn)網(wǎng)絡(luò)請求簡單封裝的代碼案例的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章! 小程序是一種不需要下載安裝即可使用的應(yīng)用,它實現(xiàn)了應(yīng)用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應(yīng)用。 |
溫馨提示:喜歡本站的話,請收藏一下本站!