Skip to content

WrathChaos/react-native-permission-service

Repository files navigation

React Native Permission Service

React Native Permission Service

npm version npm Platform - Android and iOS License: MIT styled with prettier

React Native Permission Service React Native Permission Service

Installation

Add the dependency:

npm i react-native-permission-service

Peer Dependencies

IMPORTANT! You need install them
"react-native-permissions": ">= 2.2.0"

Usage

Import

import {
  hasAllPermissionsFunc,
  requestCameraPermission,
  requestLocationPermission,
  requestPhotoLibraryPermission,
} from "react-native-permission-service";

Location Permission Usage

requestLocationPermission().then((result: string) => {
  if (result === RESULTS.GRANTED) this.setState({ isLocPermGranted: true });
});

Camera Permission Usage

requestCameraPermission().then((result: string) => {
  if (result === RESULTS.GRANTED) this.setState({ isCameraPermGranted: true });
});

Gallery Permission Usage

requestPhotoLibraryPermission().then((result: string) => {
  if (result === RESULTS.GRANTED)
    this.setState({ isPhotoLibraryPermGranted: true });
});

Has All Permission Usage

checkPermissions = () => {
  const {
    isLocPermGranted,
    isCameraPermGranted,
    isPhotoLibraryPermGranted,
  } = this.state;
  hasAllPermissionsFunc().then((res: any) => {
    res.map((item: any) => {
      switch (item.type) {
        case "location":
          this.setState({ isLocPermGranted: item.permission });
          break;
        case "camera":
          this.setState({ isCameraPermGranted: item.permission });
          break;
        case "photoLibrary":
          this.setState({ isPhotoLibraryPermGranted: item.permission });
          break;
      }
    });
    if (isLocPermGranted && isCameraPermGranted && isPhotoLibraryPermGranted) {
      // Navigation should be here
      alert("All Permissions are GRANTED!");
    }
  });
};

Example Project 😍

You can checkout the example project 🥰

Simply run

  • npm i
  • npx pod-install// if you run it on iOS
  • react-native run-ios/android

should work of the example project.

Future Plans

  • LICENSE
  • Write an article about the lib on Medium

iOS Future Plans

  • App Tracking Transparency Permission Handling
  • Bluetooth Peripheral Permission Handling
  • Calendars Permission Handling
  • Contacts Permission Handling
  • FaceID Permission Handling
  • Microphone Permission Handling
  • Photo Library Add Only Permission Handling
  • Reminders Permission Handling
  • Siri Permission Handling
  • Speech Recognition Permission Handling
  • Store kit Permission Handling

Android Future Plans

  • Accept Handover Permission Handling
  • Access Background Location Permission Handling
  • Activity Recognition Permission Handling
  • Add Voicemail Permission Handling
  • Answer Phone Calls Permission Handling
  • Body Sensors Permission Handling
  • Call Phone Permission Handling
  • Get Accounts Permission Handling
  • Process Outgoing Calls Permission Handling
  • Read Calendar Permission Handling
  • Read Call Log Permission Handling
  • Read Contacts Permission Handling
  • Read External Storage Permission Handling
  • Read Phone Numbers Permission Handling
  • Read Phone State Permission Handling
  • Read SMS Permission Handling
  • Receive MMS Permission Handling
  • Receive SMS Permission Handling
  • Receive Wap Push Permission Handling
  • Record Audio Permission Handling
  • Send SMS Permission Handling
  • Use Sip Permission Handling
  • Write Calendar Permission Handling
  • Write Call Log Permission Handling
  • Write Contacts Permission Handling
  • Write External Storage Permission Handling

Change Log

Change log will be here !

Author

FreakyCoder, kurayogun@gmail.com

License

React Native Permission Service is available under the MIT license. See the LICENSE file for more info.