NativeScript でデバイスの輝度(明るさ)を制御する
はじめに
NativeScript でデバイスの輝度(明るさ)を制御する方法。
TL;DR
- NativeScript/nativescript-brightness を使う
brightness.set({ intensity: <value> })
で輝度設定(0(暗) <-> 100(明))brightness.get()
で現在の輝度取得- 以下と組み合わせることで特定画面(or パーツ)の 表示/非表示/遷移 などの際に輝度調整が可能
- Application Lifecycle の
suspendEvent
など Page
やxxxxLayout
などのload
やunload
イベント- Android: Android Activity Events
- iOS: iOS UIApplicationDelegate (UIApplicationDelegate | Apple Developer Documentation)
- Application Lifecycle の
目次
環境・条件
1 | $ sw_vers |
詳細
使い方
Usage ほぼそのまま。
xxxx.vue
1 | <template> |
注意点
その1: イベントが発火しない場合
suspendEvent
での輝度変更を試したが、iPhone 11 Pro(iOS 13.5.1) ではそもそも suspendEvent
が発火していなかった。
※1 Android では期待通りに動作
※2 前章では xxxx.vue
の中で輝度調整をしていたが、実コードでは以下のように Vuex を使っている。
特定条件(OS Version や機種など)では suspendEvent が発火しないため iOS UIApplicationDelegate を併用することで解決した。
※3 applicationWillResignActive を使用
※4 他に使えるものは UIApplicationDelegate | Apple Developer Documentation を参照
Android で同様の事象が発生する場合は Android Activity Events を使うと解決できるかもしれない。
app/main.js
1 | import Vue from 'nativescript-vue' |
app/store.js
1 | import Vue from 'vue'; |
その2: シミュレータではなく実機を使う
iOS シミュレータ, Android エミュレータだと輝度調整できているか確認できない(はず)ので、実機で確認しないとダメ
まとめ
- NativeScript/nativescript-brightness を使う
brightness.set({ intensity: <value> })
で輝度設定(0(暗) <-> 100(明))brightness.get()
で現在の輝度取得- 以下と組み合わせることで特定画面(or パーツ)の 表示/非表示/遷移 などの際に輝度調整が可能
- Application Lifecycle の
suspendEvent
など Page
やxxxxLayout
などのload
やunload
イベント- Android: Android Activity Events
- iOS: iOS UIApplicationDelegate (UIApplicationDelegate | Apple Developer Documentation)
- Application Lifecycle の
参考文献
- NativeScript/nativescript-brightness: A NativeScript brightness plugin for Android and iOS
- Application Lifecycle - NativeScript Docs
- UIApplicationDelegate | Apple Developer Documentation
- applicationWillResignActive(_:) | Apple Developer Documentation
関連記事
- NativeScript, JsBarcode でバーコードを 生成/描画
- NativeScript で入力範囲外タップでキーボードを非表示にする
- NativeScript-Vue で次入力欄にフォーカスする方法
- NativeScript で Locale を意識した DatePicker/TimePicker
- NativeScript-Vue でページ読み込み後にページ移動やダイアログの表示
- NativeScript で ListView の表示を強制的に更新する(主に iOS)
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア