アプリのパーミッションを確認する必要があったため、プラグインをインストールしました。
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」のご紹介でした。
戻り値に注意して、便利にお使いください。