アプリのパーミッションを確認する必要があったため、プラグインをインストールしました。
Android なら、cordova-plugin-android-permissions というプラグインがあったのですが、名前のとおり、Android のみしか対応していなかったため、iOS でのチェックを行うためにこちらもインストールしました。
しかし、こちらは Android にも対応しているため、cordova-plugin-android-permissions の方をアンインストールして、これのみでチェックしようかと思っています。
GitHub のページはこちらから。
GitHub – dpa99c/cordova-diagnostic-plugin: Cordova/Phonegap plugin to manage device settings
https://github.com/dpa99c/cordova-diagnostic-plugin
使い方ですが、例えばカメラのパーミッションを確認する場合は下記のように記述します。
cordova.plugins.diagnostic.getCameraAuthorizationStatus( function(status) { // チェック成功 if(status === cordova.plugins.diagnostic.permissionStatus.GRANTED) { // カメラが使用が許可されている ...... } else { // カメラが使用が許可されていない ...... } }, function(error) { // チェック失敗 console.error("The following error occurred: "+error); }, false );
カメラの使用が許可されている場合は、上記のようにステータスで GRANTED の値が返却されます。
なので、返却値によって適宜処理を変更してください。
なお、上記のコードでは、パーミッションを確認するだけなので、もしなかった場合でも許可/拒否のダイアログの表示はしません。
パーミッションをリクエストしたい場合には、requestCameraAuthorization()
を使用してください。
使用例は下記の通りです。
cordova.plugins.diagnostic.requestCameraAuthorization( function(status) { if (status === cordova.plugins.diagnostic.permissionStatus.GRANTED) { // カメラ使用が許可された場合 ...... } else { // カメラ使用が許可された場合 ...... } }, function(error) { console.error("The following error occurred: "+error); }, false );
使い方としてはこんな感じです。
他にも、位置情報や Bluetooth、プッシュ通知、マイクなど、色々チェックできます。
ただし、位置情報など一部のパーミッションによっては、戻り値のステータスの値が Android と iOS で違っていたりするので、そこだけはご注意ください。
以上、アプリのパーミッションをチェックするためのプラグイン「cordova-diagnostic-plugin」のご紹介でした。
戻り値に注意して、便利にお使いください。