百度智能小程序 開始監(jiān)聽設(shè)備方向變化

2020-09-05 14:37 更新

swan.startDeviceMotionListening

基礎(chǔ)庫 3.30.2 開始支持,低版本需做兼容處理。

解釋:開始監(jiān)聽設(shè)備方向的變化。Web 態(tài)說明:由于瀏覽器對于 W3C 規(guī)范的實現(xiàn)差異,startDeviceMotionListening 功能在部分瀏覽器(比如 Safari 瀏覽器)下不可用,在功能不可用的情況下會執(zhí)行開發(fā)者設(shè)置的 fail 回調(diào)

方法參數(shù)

Object object

object 參數(shù)說明

屬性名類型必填默認(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í)行)

interval 的有效值

根據(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/次 左右

示例 

在開發(fā)者工具中打開



圖片示例

代碼示例

<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);
    }
});


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號