Skip to content

Cordova Plugins Diagnostic

  • This plugin provides a set of APIs for checking and requesting permissions on a device.
  • It allows developers to check if a specific permission is granted or not, and to request permission if it is not granted.
  • It also provides methods to check if a permission is permanently denied or if the user has disabled the permission request prompt.
  • It supports both Android and iOS platforms.

cordova plugin add cordova-plugin-diagnostic

getPermissionAuthorizationStatus() - Returns the authorization status of a permission.

Section titled “getPermissionAuthorizationStatus() - Returns the authorization status of a permission.”
  • Accepts 3 parameters:
    • permission (string): The permission to check.
    • successCallback (function): Callback function to be invoked with the authorization status.
    • errorCallback (function): Callback function to be invoked if an error occurs.

EXAMPLE: Checking Notification Permission

cordova.plugins.diagnostic.getPermissionAuthorizationStatus(
function (status) {
switch (status) {
case cordova.plugins.diagnostic.permissionStatus.GRANTED:
console.log("Notification Permission granted");
break;
case cordova.plugins.diagnostic.permissionStatus.DENIED:
console.log("Notification Permission denied");
break;
case cordova.plugins.diagnostic.permissionStatus.NOT_REQUESTED:
console.log("Notification Permission not requested");
break;
case cordova.plugins.diagnostic.permissionStatus.RESTRICTED:
console.log("Notification Permission restricted");
break;
case cordova.plugins.diagnostic.permissionStatus.UNKNOWN:
console.log("Notification Permission unknown");
break;
}
},
function (error) {
console.log("Notification Permissions Denied: " + error);
},
cordova.plugins.diagnostic.permission.POST_NOTIFICATIONS,
);

requestRuntimePermission() - Request a runtime permission

Section titled “requestRuntimePermission() - Request a runtime permission”
  • Accepts 3 parameters
    • permission - The permission to request
    • successCallback - Callback function to be invoked when the permission request is complete
    • errorCallback - Callback function to be invoked when an error occurs

EXAMPLE: Requesting Notification Permission

cordova.plugins.diagnostic.requestRuntimePermission(
function (status) {
switch (status) {
case cordova.plugins.diagnostic.permissionStatus.GRANTED:
console.log("Notification Permission GRANTED");
break;
case cordova.plugins.diagnostic.permissionStatus.DENIED:
console.log("Notification Permission DENIED");
break;
case cordova.plugins.diagnostic.permissionStatus.DENIED_ALWAYS:
console.log("Notification Permission DENIED ALWAYS");
console.log("User selected 'Don't ask again'");
break;
}
},
function (error) {
console.error("Error requesting Notification Permission:", error);
},
cordova.plugins.diagnostic.permission.POST_NOTIFICATIONS,
);
  • The plugin defines all dangerous permissions available up to API 33 as a list of constants available via the cordova.plugins.diagnostic.permission object. The following permissions are available:

cordova.plugins.diagnostic.permission.ACCEPT_HANDOVER cordova.plugins.diagnostic.permission.ACCEPT_HANDOVER cordova.plugins.diagnostic.permission.ACCEPT_HANDOVER cordova.plugins.diagnostic.permission.ACCEPT_HANDOVER cordova.plugins.diagnostic.permission.ACCEPT_HANDOVER cordova.plugins.diagnostic.permission.ACCEPT_HANDOVER cordova.plugins.diagnostic.permission.ACCESS_BACKGROUND_LOCATION cordova.plugins.diagnostic.permission.ACCESS_BACKGROUND_LOCATION cordova.plugins.diagnostic.permission.ACCESS_COARSE_LOCATION cordova.plugins.diagnostic.permission.ACCESS_FINE_LOCATION cordova.plugins.diagnostic.permission.ACCESS_MEDIA_LOCATION cordova.plugins.diagnostic.permission.ACTIVITY_RECOGNITION cordova.plugins.diagnostic.permission.ADD_VOICEMAIL cordova.plugins.diagnostic.permission.ANSWER_PHONE_CALLS cordova.plugins.diagnostic.permission.BLUETOOTH_ADVERTISE cordova.plugins.diagnostic.permission.BLUETOOTH_CONNECT cordova.plugins.diagnostic.permission.BLUETOOTH_SCAN cordova.plugins.diagnostic.permission.BODY_SENSORS cordova.plugins.diagnostic.permission.BODY_SENSORS_BACKGROUND cordova.plugins.diagnostic.permission.CALL_PHONE cordova.plugins.diagnostic.permission.CAMERA cordova.plugins.diagnostic.permission.GET_ACCOUNTS cordova.plugins.diagnostic.permission.NEARBY_WIFI_DEVICES cordova.plugins.diagnostic.permission.POST_NOTIFICATIONS cordova.plugins.diagnostic.permission.PROCESS_OUTGOING_CALLS cordova.plugins.diagnostic.permission.READ_CALENDAR cordova.plugins.diagnostic.permission.READ_CALL_LOG cordova.plugins.diagnostic.permission.READ_CONTACTS cordova.plugins.diagnostic.permission.READ_EXTERNAL_STORAGE cordova.plugins.diagnostic.permission.READ_MEDIA_AUDIO cordova.plugins.diagnostic.permission.READ_MEDIA_IMAGES cordova.plugins.diagnostic.permission.READ_MEDIA_VIDEO cordova.plugins.diagnostic.permission.READ_PHONE_NUMBERS cordova.plugins.diagnostic.permission.READ_PHONE_STATE cordova.plugins.diagnostic.permission.READ_SMS cordova.plugins.diagnostic.permission.RECEIVE_MMS cordova.plugins.diagnostic.permission.RECEIVE_SMS cordova.plugins.diagnostic.permission.RECEIVE_WAP_PUSH cordova.plugins.diagnostic.permission.RECORD_AUDIO cordova.plugins.diagnostic.permission.SEND_SMS cordova.plugins.diagnostic.permission.USE_SIP cordova.plugins.diagnostic.permission.UWB_RANGING cordova.plugins.diagnostic.permission.WRITE_CALENDAR cordova.plugins.diagnostic.permission.WRITE_CALL_LOG cordova.plugins.diagnostic.permission.WRITE_CONTACTS cordova.plugins.diagnostic.permission.WRITE_EXTERNAL_STORAGE