以下のWebAPIを使用します。
Battery Status API
https://developer.mozilla.org/ja/docs/WebAPI/Battery_Status
取得可能な情報:
バッテリの残量(レベル)、
充電中かどうか
充電中完了までの時間
電池が空っぽになるまでの時間
アプリの表示部分
次のようにHTMLで表示します。1 2 3 4 5 6 | < body onload = "onLoad()" > < div id = "charging" >(charging state unknown)</ div > < div id = "chargingTime" ></ div > < div id = "dischargingtime" ></ div > < div id = "level" ></ div > </ body > |
JavaScriptでWebAPIを使う
HTMLのbodyタグから、次のJavaScriptを実行させるようにしました。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | // <body>のonloadにセット /* interface BatteryManager : EventTarget { readonly attribute boolean charging; readonly attribute unrestricted double chargingTime; readonly attribute unrestricted double dischargingTime; readonly attribute double level; attribute EventHandler onchargingchange; attribute EventHandler onchargingtimechange; attribute EventHandler ondischargingtimechange; attribute EventHandler onlevelchange; }; */ function onLoad(){ var battery = navigator.battery; updateBatteryInfo(); // add Listener battery.addEventListener( "chargingchange" , updateBatteryInfo, false ); battery.addEventListener( "chargingTime" , updateBatteryInfo, false ); battery.addEventListener( "dischargingtimechange" , updateBatteryInfo, false ); battery.addEventListener( "levelchange" , updateBatteryInfo, false ); // set text function updateBatteryInfo(){ document.querySelector( '#charging' ).textContent = battery.charging ? 'charging' : 'not charging' ; document.querySelector( '#chargingTime' ).textContent = battery.chargingTime; document.querySelector( '#dischargingtime' ).textContent = battery.dischargingTime; document.querySelector( '#level' ).textContent = battery.level * 100 + "%" ; } } |
不要になったタイミングで、battery.removeEventListenerをコールし、リスナー解除を行いましょう。
FirefoxOs内の次のプログラムが非常に参考になります。
Gaia層(Settingアプリのソース)
\gaia\apps\settings\js
0 件のコメント:
コメントを投稿