W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
基礎(chǔ)庫 3.30.2 開始支持,低版本需做兼容處理。
解釋:開始監(jiān)聽設(shè)備方向的變化。Web 態(tài)說明:由于瀏覽器對于 W3C 規(guī)范的實現(xiàn)差異,startDeviceMotionListening 功能在部分瀏覽器(比如 Safari 瀏覽器)下不可用,在功能不可用的情況下會執(zhí)行開發(fā)者設(shè)置的 fail 回調(diào)
Object object
屬性名 | 類型 | 必填 | 默認(rèn)值 | 說明 |
---|---|---|---|---|
interval | String | 否 | normal | 監(jiān)聽設(shè)備方向的變化回調(diào)函數(shù)的執(zhí)行頻率 |
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í)行) |
根據(jù)機(jī)型性能、當(dāng)前 CPU 與內(nèi)存的占用情況,interval 的設(shè)置與實際 swan.onAccelerometerChange() 回調(diào)函數(shù)的執(zhí)行頻率會有一些出入。
值 | 說明 |
---|---|
game | 適用于更新游戲的回調(diào)頻率,在 20ms/次 左右 |
ui | 適用于更新 UI 的回調(diào)頻率,在 60ms/次 左右 |
normal | 普通的回調(diào)頻率,在 200ms/次 左右 |
<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號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: