api.js
ページと同じ階層にAPIフォルダを作成し、APIフォルダの下にapi.jsファイルを作成します。POST、GETリクエストメソッド
function sendPostReuest(url,params){
return new Promise(function(resolve,reject){
wx.request({
url: url,
data:params,
method:"Post",
success(res){
resolve(res)
},
fail(res){
reject(res)
}
})
})
}
function sendGetReuest(url,params){
return new Promise(function(resolve,reject){
wx.request({
url: url,
data:params,
success(res){
resolve(res)
},
fail(res){
reject(res)
}
})
})
}
var baseUrl = "https://..:01";
module.exports ={
getsongsData(){
return sendGetReuest(baseUrl + "/personalized")
},
getsongsrequest(id){
return sendGetReuest(baseUrl+"/playlist/detail?id="+id+"")
},
getsongslink(id){
return sendGetReuest(baseUrl+"/song/url?id="+id+"")
},
getsearchData(keywords){
return sendGetReuest(baseUrl+"/search",keywords)
}
}
このデータリクエストを別のページで使用する場合は、まず以下のようにapi.jsをページにインポートします:
import api from "../../API/api.js"
ready(){
api.getsongsData().then(data=>{
// 曲のリストを取得する
this.setData({
songsList:data.data.result
}),
// プレイリストを設定する
this.innerAudioContext = wx.createInnerAudioContext()
// 曲が終了したかどうかを検出し、終了していれば次の曲を再生する。
// 10曲の再生が終了したら、1曲目から再生するように設定する。
this.innerAudioContext.onEnded((res)=>{
console.log(" ")
this.data.number++
if(this.data.number==10){
this.data.number=0
}
console.log(this.data.number)
this.innerAudioContext.autoplay = true
// 曲を再生するためにstartingsメソッドを呼び出す
this.startsings()
})
})
}
次の例は、コンフィギュレーションなしの直接アドレスリクエストです。
Page({
data: {
"indicatorDots":true,
"autoplay":true,
"interval":1000,
"duration":500,
'bannerList':[],
"circular":true,
'Nineimg':[]
},
onLoad(){
this.getData(),//ページが読み込まれたら、getData関数を呼び出す。
this.getNineNumber()
},
getData(){
var that = this
wx.request({
url: 'https://../es', //次のように記述しなければならない。
method:"GET", //デフォルトはGETである。
data:{},
timeout:30000,
<!--データ・リクエストが成功したら、データを取得し、データ内のbannerListに代入する。-->
success(res){
that.setData({
bannerList:res.data
})
},
fail(err){
console.log(err)
},
complete(){
// console.log("データ・リクエストが完了した!")
}
})
},
getNineNumber(){
<!--このポインティングの問題を解決する-->
var that = this
wx.request({
url: 'https://../es',
method:"GET",
success(res){
that.setData({
Nineimg:res.data
})
// console.log(res.data)
}
})
}
})