百度智能小程序 獲取當前設備電量同步接口

2020-09-05 14:38 更新

swan.getBatteryInfoSync

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

解釋: 獲取當前設備電量同步接口,ios 系統(tǒng)不可用。Web 態(tài)說明:受瀏覽器限制,Web 態(tài)不支持同步獲取當前設備電量,調用該方法會拋出一個標準的Error對象。

方法參數(shù)

返回值說明

參數(shù)名類型說明

level

String

設備電量,范圍為 1-100 。

isCharging

Boolean

設備是否正在充電

示例 

在開發(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="getBatteryInfo" type="primary" hover-stop-propagation="true">獲取電量信息</button>
        </view>
    </view>
</view>
Page({
    data: {
        infoList: [{
            engName: 'level',
            chineseName: '電量',
            value: ''
        }, {
            engName: 'isCharging',
            chineseName: '是否充電中',
            value: ''
        }]
    },
    getBatteryInfo() {
        swan.getBatteryInfo({
            success: res => {
                console.log('getBatteryInfo success', res);
                this.updateInfoList(res);
            },
            fail: err => {
                console.log('getBatteryInfo fail', err);
            }
        });
    },
    // 同步寫法
    // getBatteryInfoSync() {
    //     let res = swan.getBatteryInfoSync();
    //     // 基礎庫 3.140.1 之前,無法判斷接口是否調用失敗
    //     // 基礎庫 3.140.1 及以后,通過 instanceof 來判斷接口是否調用失敗
    //     if (!(res instanceof Error)) {
    //         console.log('當前設備電量值:', res.level);
    //         console.log('當前設備是否正在充電:', res.isCharging);
    //         this.updateInfoList(res);
    //     }
    //     else {
    //         console.log('getBatteryInfoSync fail', res.errMsg || res.message);
    //     }
    // },
    updateInfoList(res) {
        let infoList = this.data.infoList;
        infoList[0].value = res.level + '%';
        if (res.isCharging === true) {
            infoList[1].value = '是';
        }
        else {
            infoList[1].value = '否';
        }
        this.setData('infoList', infoList);
        for (let item of infoList) {
            if (!res[item.engName]) {
                item.value = '暫無';
            }
        }
    }
});

Bug & Tip

  • Tip:iOS 不可用時,返回值 level 為 100, isCharging 為 true 。
  • Tip:基礎庫 3.140.1 之前,無法判斷接口是否調用失敗;基礎庫 3.140.1 及以后,接口調用失敗時會返回一個標準的Error對象,可通過instanceof來判斷接口是否調用失敗。


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號