Cordova アプリから OS の設定アプリを開く
はじめに
guyromb/cordova-open-native-settings を使って、Cordova アプリから OS の設定アプリを開く方法。
README には「iOS 8/9/10」と記載されているが、iOS 14.4 でも問題なく動作した。
TL;DR
cordova plugin add cordova-open-native-settings
でプラグイン追加cordova.plugins.settings.open
で設定アプリを開くことができる- 設定アプリ内のどの機能にアクセスしたいかは以下を参照
目次
環境・条件
1 | $ sw_vers |
詳細
セットアップ
cordova plugin add
でプラグイン追加
1 | $ cordova plugin add cordova-open-native-settings |
実装
cordova.plugins.settings.open(setting_constant, success_callback, failure_callback)
で設定アプリを開くことができる。
setting_constant
は Settings Options (Android), Settings Options (iOS) を参照。
例えば通知設定を開きたい場合は iOS, Android ともに notification_id
を指定する。
1 | if (typeof cordova === 'undefined' || !cordova?.plugins?.settings) { |
Android のデフォルト動作だと、同じアプリ内で開く挙動になる。別アプリとして開きたい場合は、第一引数を ['notification_id', true]
のような配列(2要素目を true
)にすると良い。iOS と Android で処理分岐させる必要はなく、iOS も以下コードで問題なく動作する。
1 | if (typeof cordova === 'undefined' || !cordova?.plugins?.settings) { |
動作確認結果
以下の端末で動作確認、2021/03 時点の新しめの OS でも問題ないっぽい。
デバイス | OS | 区分 |
---|---|---|
iPhone 11 Pro | iOS 14.4 | 実機 |
iPhone 8 Plus | iOS 14.4 | シミュレータ |
iPhone 8 Plus | iOS 13.5 | シミュレータ |
iPhone 8 Plus | iOS 12.4 | シミュレータ |
iPhone 8 Plus | iOS 11.4 | シミュレータ |
Huawei nova lite2 | Android 9 | 実機 |
Pixel 4 | Android 11 | エミュレータ |
Pixel 3a | Android 10 | エミュレータ |
Pixel 3a | Android 9 | エミュレータ |
※iOS シミュレータだと、設定アプリの機能が制限されているので注意。(例: 「通知」の設定画面がない、など)
まとめ
cordova plugin add cordova-open-native-settings
でプラグイン追加cordova.plugins.settings.open
で設定アプリを開くことができる- 設定アプリ内のどの機能にアクセスしたいかは以下を参照
参考文献
関連記事
- Cordova でアプリ名やアプリのバージョン情報などを取得
- Cordova で端末やエミュレータを指定してデプロイする
- Cordova で Repro とカスタム URL スキームを使ってディープリンクを扱う
- Cordova で Splash Screen を設定する cordova-plugin-splashscreen
- Cordova でネイティブダイアログを呼び出す cordova-plugin-dialogs
- Git リポジトリや既存の Cordova アプリ向けコードを使って Cordova 環境を構築する方法
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア