RaphaelWoude / capacitor-native-settings

Capacitor plugin to open native settings screens for android and iOS
MIT License
92 stars 30 forks source link

Capacitor Native Settings

Capacitor plugin to open native settings screens for Android and iOS.

Plugin versions

Capacitor version Plugin version
v6 >= v6.0.0
v5 >= v5.0.0
v4 >= v4.0.0
v3 <= v2.0.1

Install

npm install capacitor-native-settings
npx cap sync

Example

import { NativeSettings, AndroidSettings, IOSSettings } from 'capacitor-native-settings';

/**
 * Note that the only supported option by Apple is "App".
 * Using other options might break in future iOS versions
 * or have your app rejected from the App Store.
 */
NativeSettings.open({
  optionAndroid: AndroidSettings.ApplicationDetails, 
  optionIOS: IOSSettings.App
})

NativeSettings.openAndroid({
  option: AndroidSettings.ApplicationDetails,
});

/**
 * Note that the only supported option by Apple is "App".
 * Using other options might break in future iOS versions
 * or have your app rejected from the App Store.
 */
NativeSettings.openIOS({
  option: IOSSettings.App,
});

API

* [`open(...)`](#open) * [`openAndroid(...)`](#openandroid) * [`openIOS(...)`](#openios) * [Interfaces](#interfaces) * [Enums](#enums) ### open(...) ```typescript open(option: PlatformOptions) => Promise<{ status: boolean; }> ``` Opens the specified options on android & ios. Note that the only supported option by Apple is "App". Using other options might break in future iOS versions or have your app rejected in the App Store. | Param | Type | Description | | ------------ | ----------------------------------------------------------- | ---------------------------------------------- | | **`option`** | PlatformOptions | PlatformOptions | **Returns:** Promise<{ status: boolean; }> -------------------- ### openAndroid(...) ```typescript openAndroid(option: AndroidOptions) => Promise<{ status: boolean; }> ``` Opens the specified option in android. Only use this if you have made sure the user is on android. This can be done by checking the platform before hand. | Param | Type | Description | | ------------ | --------------------------------------------------------- | -------------------------------------------- | | **`option`** | AndroidOptions | AndroidOptions | **Returns:** Promise<{ status: boolean; }> -------------------- ### openIOS(...) ```typescript openIOS(option: IOSOptions) => Promise<{ status: boolean; }> ``` Opens the specified option on iOS. Only use this if you have made sure the user is on iOS. This can be done by checking the platform before hand. Note that the only supported option by Apple is "App". Using other options might break in future iOS versions or have your app rejected in the App Store. | Param | Type | Description | | ------------ | ------------------------------------------------- | ------------------------------------ | | **`option`** | IOSOptions | IOSOptions | **Returns:** Promise<{ status: boolean; }> -------------------- ### Interfaces #### PlatformOptions | Prop | Type | | ------------------- | ----------------------------------------------------------- | | **`optionAndroid`** | AndroidSettings | | **`optionIOS`** | IOSSettings | #### AndroidOptions | Prop | Type | | ------------ | ----------------------------------------------------------- | | **`option`** | AndroidSettings | #### IOSOptions | Prop | Type | | ------------ | --------------------------------------------------- | | **`option`** | IOSSettings | ### Enums #### AndroidSettings | Members | Value | Description | | ---------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------ | | **`Accessibility`** | 'accessibility' | Show settings for accessibility modules | | **`Account`** | 'account' | Show add account screen for creating a new account | | **`AirplaneMode`** | 'airplane_mode' | Show settings to allow entering/exiting airplane mode | | **`Apn`** | 'apn' | Show settings to allow configuration of APNs | | **`ApplicationDetails`** | 'application_details' | Show screen of details about a particular application | | **`ApplicationDevelopment`** | 'application_development' | Show settings to allow configuration of application development-related settings | | **`Application`** | 'application' | Show settings to allow configuration of application-related settings | | **`AppNotification`** | 'app_notification' | Show settings to allow configuration of application-specific notifications | | **`BatteryOptimization`** | 'battery_optimization' | Show screen for controlling which apps can ignore battery optimizations | | **`Bluetooth`** | 'bluetooth' | Show settings to allow configuration of Bluetooth | | **`Captioning`** | 'captioning' | Show settings for video captioning | | **`Cast`** | 'cast' | Show settings to allow configuration of cast endpoints | | **`DataRoaming`** | 'data_roaming' | Show settings for selection of 2G/3G/4G | | **`Date`** | 'date' | Show settings to allow configuration of date and time | | **`Display`** | 'display' | Show settings to allow configuration of display | | **`Dream`** | 'dream' | Show Daydream settings | | **`Home`** | 'home' | Show Home selection settings | | **`Keyboard`** | 'keyboard' | Show settings to configure input methods, in particular allowing the user to enable input methods | | **`KeyboardSubType`** | 'keyboard_subtype' | Show settings to enable/disable input method subtypes | | **`Locale`** | 'locale' | Show settings to allow configuration of locale | | **`Location`** | 'location' | Show settings to allow configuration of current location sources | | **`ManageApplications`** | 'manage_applications' | Show settings to manage installed applications | | **`ManageAllApplications`** | 'manage_all_applications' | Show settings to manage all applications | | **`MemoryCard`** | 'memory_card' | Show settings for memory card storage | | **`Network`** | 'network' | Show settings for selecting the network operator | | **`NfcSharing`** | 'nfcsharing' | Show NFC Sharing settings | | **`NfcPayment`** | 'nfc_payment' | Show NFC Tap & Pay settings | | **`NfcSettings`** | 'nfc_settings' | Show NFC settings | | **`Print`** | 'print' | Show the top level print settings | | **`Privacy`** | 'privacy' | Show settings to allow configuration of privacy options | | **`QuickLaunch`** | 'quick_launch' | Show settings to allow configuration of quick launch shortcuts | | **`Search`** | 'search' | Show settings for global search | | **`Security`** | 'security' | Show settings to allow configuration of security and location privacy | | **`Settings`** | 'settings' | Show system settings | | **`ShowRegulatoryInfo`** | 'show_regulatory_info' | Show the regulatory information screen for the device | | **`Sound`** | 'sound' | Show settings to a llow configuration of sound and volume | | **`Storage`** | 'storage' | Show settings for internal storage | | **`Sync`** | 'sync' | Show settings to allow configuration of sync settings | | **`Usage`** | 'usage' | Show settings to control access to usage information | | **`UserDictionary`** | 'user_dictionary' | Show settings to manage the user input dictionary | | **`VoiceInput`** | 'voice_input' | Show settings to configure input methods, in particular allowing the user to enable input methods | | **`Wifi`** | 'wifi' | Show settings to allow configuration of Wi-Fi | | **`WifiIp`** | 'wifi_ip' | Show settings to allow configuration of a static IP address for Wi-Fi | | **`Wireless`** | 'wireless' | Show settings to allow configuration of wireless controls such as Wi-Fi, Bluetooth and Mobile networks | #### IOSSettings | Members | Value | Description | | ------------------------------ | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | | **`About`** | 'about' | Settings > About page | | **`App`** | 'app' | Opens your app-specific settings screen. Note that this is the only officially supported settings screen by Apple. | | **`AutoLock`** | 'autoLock' | Used to set if and when the screen should be automatically locked. | | **`Bluetooth`** | 'bluetooth' | Bluetooth settings. Allows the users to enable/disable bluetooth and to search for devices. | | **`DateTime`** | 'dateTime' | Date and time settings. | | **`FaceTime`** | 'facetime' | FaceTime settings. | | **`General`** | 'general' | Opens iOS general settings screen. | | **`Keyboard`** | 'keyboard' | Keyboard settings. | | **`ICloud`** | 'iCloud' | iCloud settings. | | **`ICloudStorageBackup`** | 'iCloudStorageBackup' | iCloud Storage and Backup settings. | | **`International`** | 'international' | Language and region settings. | | **`LocationServices`** | 'locationServices' | Show settings to allow configuration of current location sources | | **`Music`** | 'music' | Music settings. | | **`Notes`** | 'notes' | Notes settings. | | **`Notifications`** | 'notifications' | Notifications settings. | | **`Phone`** | 'phone' | Phone settings. | | **`Photos`** | 'photos' | Photos settings. | | **`ManagedConfigurationList`** | 'managedConfigurationList' | Allows the user to manage configuration profiles that are installed on the phone. | | **`Reset`** | 'reset' | Screen where the user can reset the phone to factory settings. | | **`Ringtone`** | 'ringtone' | Ringtone settings. | | **`Sounds`** | 'sounds' | Used to set phone volume, vibration settings, etc. | | **`SoftwareUpdate`** | 'softwareUpdate' | Software update screen. | | **`Store`** | 'store' | Store settings. | | **`Tracking`** | 'tracking' | Tracking settings. | | **`Wallpaper`** | 'wallpaper' | Wallpaper settings. | | **`WiFi`** | 'wifi' | WiFi settings. | | **`Tethering`** | 'tethering' | Tethering settings (used to create a hotspot with mobile data). | | **`DoNotDisturb`** | 'doNotDisturb' | Do Not Disturb settings. | | **`TouchIdPasscode`** | 'touchIdPasscode' | Touch id passcode settings. | | **`ScreenTime`** | 'screenTime' | Screen Time settings. | | **`Accessibility`** | 'accessibility' | Accessibility settings. |