W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
基礎(chǔ)庫 3.30.2 開始支持,低版本需做兼容處理。在工具和真機(jī)中的實(shí)現(xiàn)有區(qū)別,詳見 API 實(shí)現(xiàn)差異
解釋:監(jiān)聽設(shè)備方向變化事件。頻率根據(jù) swan.startDeviceMotionListening() 的 interval 參數(shù)。可以使用 swan.stopDeviceMotionListening() 停止監(jiān)聽。
Function callback
屬性名 | 類型 | 必填 | 默認(rèn)值 | 說明 |
---|---|---|---|---|
alpha | Number | 是 | 當(dāng)手機(jī)坐標(biāo) X/Y 和 地球 X/Y 重合時(shí),繞著 Z 軸轉(zhuǎn)動(dòng)的夾角為 alpha,范圍值為 [0, 2*PI)。逆時(shí)針轉(zhuǎn)動(dòng)為正。 | |
beta | Number | 是 | 當(dāng)手機(jī)坐標(biāo) Y/Z 和地球 Y/Z 重合時(shí),繞著 X 軸轉(zhuǎn)動(dòng)的夾角為 beta。范圍值為 [-1*PI, PI) 。頂部朝著地球表面轉(zhuǎn)動(dòng)為正。也有可能朝著用戶為正。 | |
gamma | Number | 是 | 當(dāng)手機(jī) X/Z 和地球 X/Z 重合時(shí),繞著 Y 軸轉(zhuǎn)動(dòng)的夾角為 gamma。范圍值為 [-1*PI/2, PI/2)。右邊朝著地球表面轉(zhuǎn)動(dòng)為正。 |
<view class="wrap">
<view class="card-area">
<view class="list-area border-bottom" s-for="item in infoList">
<text class="list-item-key-4">{{item.chineseName}}</text>
<text class="list-item-value">{{item.value}}</text>
</view>
<view class="button-group">
<button bind:tap="stopDeviceMotionListening" disabled="{{!disabled}}" type="primary" hover-stop-propagation="true">停止監(jiān)聽</button>
<button bind:tap="startDeviceMotionListening" disabled="{{disabled}}" type="primary" hover-stop-propagation="true">開始監(jiān)聽</button>
</view>
</view>
</view>
Page({
data: {
infoList: [{
engName: 'alpha',
chineseName: 'z軸角度',
value: ''
}, {
engName: 'beta',
chineseName: 'x軸角度',
value: ''
}, {
engName: 'gamma',
chineseName: 'y軸角度',
value: ''
}],
disabled: false
},
startDeviceMotionListening() {
swan.startDeviceMotionListening({
interval: 'ui',
success: () => {
this.setData('disabled', !this.data.disabled);
console.log('startDeviceMotionListening success');
this.onDeviceMotionChange();
},
fail: err => {
console.log('startDeviceMotionListening fail', err);
}
});
},
onDeviceMotionChange() {
swan.onDeviceMotionChange(res => {
console.log('onDeviceMotionChange', res);
this.updateInfoList(res);
});
},
stopDeviceMotionListening() {
swan.stopDeviceMotionListening({
success: () => {
this.setData('disabled', !this.data.disabled);
console.log('stopDeviceMotionListening success');
},
fail: err => {
console.log('stopDeviceMotionListening fail', err);
}
});
},
updateInfoList(res) {
let infoList = this.data.infoList;
for (let item of infoList) {
if (!res[item.engName]) {
item.value = '暫無';
} else {
item.value = res[item.engName].toFixed(2);
}
}
this.setData('infoList', infoList);
}
});
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: