直接修改全局变量
在onLoad事件中,我们可以直接修改全局变量,并在小程序的任何一个页面访问和使用它。下面是一个修改播放器播放状态的例子:
Page({onLoad:function(){getApp().globalData.isPlaying=true;},})```2、通过事件触发修改全局变量通过事件触发修改全局变量通常会在用户操作时执行。例如,我们可以在点击开关时修改开关的状态,并把它保存到全局变量中。代码如下:```html通过事件触发修改全局变量
通过事件触发修改全局变量可以在用户交互时执行。在下面的例子中,我们可以在用户点击开关时,修改开关的状态,并把它保存到全局变量中。
Page({switchChange:function(e){getApp().globalData.switchStatus=e.detail.value;},})```实际案例演示下面是一个实际案例演示,它可以让你更好地理解全局变量的使用方法。在这个案例中,我们将通过修改全局变量,实现用语音控制小程序页面的背景音乐切换。代码如下:```html实际案例演示
在这个案例中,我们将用小程序的云函数和百度语音识别API,实现用语音控制小程序页面的背景音乐切换。具体步骤如下:
在云函数中,我们与百度语音识别API交互,并将语音输入转换为文本:
exports.main=async(event,context)=>{constBaiduAipSpeechClient=require(baidu-aip-sdk).speech;constAPP_ID=yourappid;constAPI_KEY=yourapikey;constSECRET_KEY=yoursecretkey;constclient=newBaiduAipSpeechClient(APP_ID,API_KEY,SECRET_KEY);constres=awaitclient.recognize(Buffer.from(event.buffer),pcm,16000,{dev_pid:1536});consttext=res.result[0];return{text};};在小程序代码中,我们通过调用云函数来获取语音输入,并将其转换为文本:
wx.cloud.callFunction({name:recognize,data:{buffer,},success:(res)=>{consttext=res.result.text;this.setData({text});}});在根据文本内容判断用户的意图后,我们可以修改全局变量来实现函数切换:
constswitch_song=(num)=>{getApp().globalData.currentSong+=num};constplay_pause=()=>{getApp().globalData.isPlaying=!getApp().globalData.isPlaying;};if(text==下一首){switch_song(1);}if(text==上一首){switch_song(-1);}if(text==开始||text==停止){play_pause();}TOP