Linking iOS system settings in a React Native app

Lukasz Kurant
5 min readNov 5, 2023

--

Photo by Laura Ockel on Unsplash

In the react native app, we have the ability to create links and navigate to system settings. In addition to the standard input to the application settings described in the official documentation, we also have the option of choosing to navigate to specific system settings, such as WiFi communication, Bluetooth, the list of active subscriptions, etc. Unfortunately, it is difficult to find specific information on this topic, so I would like to present methods of achieving this.

Navigation to system settings

Whenever we want to enable a transition to the system settings, we have to use the Linking module from the react-native library. To go simply to the application settings, simply select:

Linking.openSettings()

This allows us to launch such a screen:

View of application system settings.

However, by using the deep link, we can access virtually any setting. For example, by executing the following code:

Linking.openURL('App-Prefs:APPLE_ACCOUNT&path=SUBSCRIPTIONS')

We can access the user’s Apple account settings, specifically the list of active subscriptions (which can be useful for some apps.

Detailed list of settings for navigation

iCloud

  • iCloud: App-Prefs:CASTLE
  • iCloud Backup: App-Prefs:CASTLE&path=BACKUP

Wireless Radios

  • Wi-Fi: App-Prefs:WIFI
  • Bluetooth: App-Prefs:Bluetooth
  • Cellular: App-Prefs:MOBILE_DATA_SETTINGS_ID

Personal Hotspot

  • Personal Hotspot: App-Prefs:INTERNET_TETHERING
  • Personal Hotspot ⇾ Family Sharing: App-Prefs:INTERNET_TETHERING&path=Family%20Sharing
  • Personal Hotspot ⇾ Wi-Fi Password: App-Prefs:INTERNET_TETHERING&path=Wi-Fi%20Password

VPN

  • VPN: App-Prefs:General&path=VPN
  • DNS: App-Prefs:General&path=VPN/DNS

Notifications

  • Notifications: App-Prefs:NOTIFICATIONS_ID
  • Notifications ⇾ Siri Suggestions: App-Prefs:NOTIFICATIONS_ID&path=Siri%20Suggestions

Sounds

  • Sounds: App-Prefs:Sounds
  • Ringtone: App-Prefs:Sounds&path=Ringtone

Do Not Disturb

  • Do Not Disturb: App-Prefs:DO_NOT_DISTURB
  • Do Not Disturb ⇾ Allow Calls From: App-Prefs:DO_NOT_DISTURB&path=Allow%20Calls%20From

Screen Time

  • Screen Time: App-Prefs:SCREEN_TIME
  • Screen Time ⇾ Downtime: App-Prefs:SCREEN_TIME&path=DOWNTIME
  • Screen Time ⇾ App Limits: App-Prefs:SCREEN_TIME&path=APP_LIMITS
  • Screen Time ⇾ Always Allowed: App-Prefs:SCREEN_TIME&path=ALWAYS_ALLOWED

General

  • General: App-Prefs:General
  • General ⇾ About: App-Prefs:General&path=About
  • General ⇾ Software Update: App-Prefs:General&path=SOFTWARE_UPDATE_LINK
  • General ⇾ CarPlay: App-Prefs:General&path=CARPLAY
  • General ⇾ Background App Refresh: App-Prefs:General&path=AUTO_CONTENT_DOWNLOAD
  • General ⇾ Multitasking (iPad-only): App-Prefs:General&path=MULTITASKING
  • General ⇾ Date & Time: App-Prefs:General&path=DATE_AND_TIME
  • General ⇾ Keyboard: App-Prefs:General&path=Keyboard
  • General ⇾ Keyboard ⇾ Keyboards: App-Prefs:General&path=Keyboard/KEYBOARDS
  • General ⇾ Keyboard ⇾ Hardware Keyboard: App-Prefs:General&path=Keyboard/Hardware%20Keyboard
  • General ⇾ Keyboard ⇾ Text Replacement: App-Prefs:General&path=Keyboard/USER_DICTIONARY
  • General ⇾ Keyboard ⇾ One Handed Keyboard: App-Prefs:General&path=Keyboard/ReachableKeyboard
  • General ⇾ Language & Region: App-Prefs:General&path=INTERNATIONAL
  • General ⇾ Dictionary: App-Prefs:General&path=DICTIONARY
  • General ⇾ Profiles: App-Prefs:General&path=ManagedConfigurationList
  • General ⇾ Reset: App-Prefs:General&path=Reset

Control Center

  • Control Center: App-Prefs:ControlCenter
  • Control Center ⇾ Customize Controls: App-Prefs:ControlCenter&path=CUSTOMIZE_CONTROLS

Display

  • Display: App-Prefs:DISPLAY
  • Display ⇾ Auto Lock: App-Prefs:DISPLAY&path=AUTOLOCK
  • Display ⇾ Text Size: App-Prefs:DISPLAY&path=TEXT_SIZE

Accessibility

  • Accessibility: App-Prefs:ACCESSIBILITY

Wallpaper

  • Wallpaper: App-Prefs:Wallpaper

Siri

  • Siri: App-Prefs:SIRI

Apple Pencil

  • Apple Pencil (iPad-only): App-Prefs:Pencil

Face ID

  • Face ID: App-Prefs:PASSCODE

Emergency SOS

  • Emergency SOS: App-Prefs:EMERGENCY_SOS

Battery

  • Battery: App-Prefs:BATTERY_USAGE
  • Battery ⇾ Battery Health (iPhone-only): App-Prefs:BATTERY_USAGE&path=BATTERY_HEALTH

Privacy

  • Privacy: App-Prefs:Privacy
  • Privacy ⇾ Location Services: App-Prefs:Privacy&path=LOCATION
  • Privacy ⇾ Contacts: App-Prefs:Privacy&path=CONTACTS
  • Privacy ⇾ Calendars: App-Prefs:Privacy&path=CALENDARS
  • Privacy ⇾ Reminders: App-Prefs:Privacy&path=REMINDERS
  • Privacy ⇾ Photos: App-Prefs:Privacy&path=PHOTOS
  • Privacy ⇾ Microphone: App-Prefs:Privacy&path=MICROPHONE
  • Privacy ⇾ Speech Recognition: App-Prefs:Privacy&path=SPEECH_RECOGNITION
  • Privacy ⇾ Camera: App-Prefs:Privacy&path=CAMERA
  • Privacy ⇾ Motion: App-Prefs:Privacy&path=MOTION
  • Privacy ⇾ Analytics & Improvements: App-Prefs:Privacy&path=PROBLEM_REPORTING
  • Privacy ⇾ Apple Advertising: App-Prefs:Privacy&path=ADVERTISING

App Store

  • App Store: App-Prefs:STORE
  • App Store ⇾ App Downloads: App-Prefs:STORE&path=App%20Downloads
  • App Store ⇾ Video Autoplay: App-Prefs:STORE&path=Video%20Autoplay

Wallet

  • Wallet: App-Prefs:PASSBOOK

Passwords

  • Passwords: App-Prefs:PASSWORDS

Mail

  • Mail: App-Prefs:MAIL
  • Mail ⇾ Accounts: App-Prefs:ACCOUNTS_AND_PASSWORDS&path=ACCOUNTS
  • Mail ⇾ Accounts ⇾ Fetch New Data: App-Prefs:ACCOUNTS_AND_PASSWORDS&path=FETCH_NEW_DATA
  • Mail ⇾ Accounts ⇾ Add Account: App-Prefs:ACCOUNTS_AND_PASSWORDS&path=ADD_ACCOUNT
  • Mail ⇾ Preview: App-Prefs:MAIL&path=Preview
  • Mail ⇾ Swipe Options: App-Prefs:MAIL&path=Swipe%20Options
  • Mail ⇾ Notifications: App-Prefs:MAIL&path=NOTIFICATIONS
  • Mail ⇾ Blocked: App-Prefs:MAIL&path=Blocked
  • Mail ⇾ Muted Thread Action: App-Prefs:MAIL&path=Muted%20Thread%20Action
  • Mail ⇾ Blocked Sender Options: App-Prefs:MAIL&path=Blocked%20Sender%20Options
  • Mail ⇾ Mark Addresses: App-Prefs:MAIL&path=Mark%20Addresses
  • Mail ⇾ Increase Quote Level: App-Prefs:MAIL&path=Increase%20Quote%20Level
  • Mail ⇾ Include Attachments with Replies: App-Prefs:MAIL&path=Include%20Attachments%20with%20Replies
  • Mail ⇾ Signature: App-Prefs:MAIL&path=Signature
  • Mail ⇾ Default Account: App-Prefs:MAIL&path=Default%20Account

Contacts

  • Contacts: App-Prefs:CONTACTS

Calendar

  • Calendar: App-Prefs:CALENDAR
  • Calendar ⇾ Alternate Calendars: App-Prefs:CALENDAR&path=Alternate%20Calendars
  • Calendar ⇾ Sync: App-Prefs:CALENDAR&path=Sync
  • Calendar ⇾ Default Alert Times: App-Prefs:CALENDAR&path=Default%20Alert%20Times
  • Calendar ⇾ Default Calendar: App-Prefs:CALENDAR&path=Default%20Calendar

Notes

  • Notes: App-Prefs:NOTES
  • Notes ⇾ Default Account: App-Prefs:NOTES&path=Default%20Account
  • Notes ⇾ Password: App-Prefs:NOTES&path=Password
  • Notes ⇾ Sort Notes By: App-Prefs:NOTES&path=Sort%20Notes%20By
  • Notes ⇾ New Notes Start With: App-Prefs:NOTES&path=New%20Notes%20Start%20With
  • Notes ⇾ Sort Checked Items: App-Prefs:NOTES&path=Sort%20Checked%20Items
  • Notes ⇾ Lines & Grids: App-Prefs:NOTES&path=Lines%20%26%20Grids
  • Notes ⇾ Access Notes from Lock Screen: App-Prefs:NOTES&path=Access%20Notes%20from%20Lock%20Screen

Reminders

  • Reminders: App-Prefs:REMINDERS
  • Reminders ⇾ Default List: App-Prefs:REMINDERS&path=DEFAULT_LIST

Voice Memos

  • Voice Memos: App-Prefs:VOICE_MEMOS

Phone

  • Phone: App-Prefs:Phone

Messages

  • Messages: App-Prefs:MESSAGES

FaceTime

  • FaceTime: App-Prefs:FACETIME

Maps

  • Maps: App-Prefs:MAPS
  • Maps ⇾ Driving & Navigation: App-Prefs:MAPS&path=Driving%20%26%20Navigation
  • Maps ⇾ Transit: App-Prefs:MAPS&path=Transit

Compass

  • Compass: App-Prefs:COMPASS

Measure

  • Measure: App-Prefs:MEASURE

Safari

  • Safari: App-Prefs:SAFARI
  • Safari ⇾ Content Blockers: App-Prefs:SAFARI&path=Content%20Blockers
  • Safari ⇾ Downloads: App-Prefs:SAFARI&path=DOWNLOADS
  • Safari ⇾ Close Tabs: App-Prefs:SAFARI&path=Close%20Tabs
  • Safari ⇾ Clear History and Data: App-Prefs:SAFARI&path=CLEAR_HISTORY_AND_DATA
  • Safari ⇾ Page Zoom: App-Prefs:SAFARI&path=Page%20Zoom
  • Safari ⇾ Request Desktop Website: App-Prefs:SAFARI&path=Request%20Desktop%20Website
  • Safari ⇾ Reader: App-Prefs:SAFARI&path=Reader
  • Safari ⇾ Camera: App-Prefs:SAFARI&path=Camera
  • Safari ⇾ Microphone: App-Prefs:SAFARI&path=Microphone
  • Safari ⇾ Location: App-Prefs:SAFARI&path=Location
  • Safari ⇾ Advanced: App-Prefs:SAFARI&path=ADVANCED

News

  • News: App-Prefs:NEWS

Health

  • Health: App-Prefs:HEALTH

Shortcuts

  • Shortcuts: App-Prefs:SHORTCUTS

Music

  • Music: App-Prefs:MUSIC
  • Music ⇾ Cellular Data: App-Prefs:MUSIC&path=com.apple.Music:CellularData
  • Music ⇾ Optimize Storage: App-Prefs:MUSIC&path=com.apple.Music:OptimizeStorage
  • Music ⇾ EQ: App-Prefs:MUSIC&path=com.apple.Music:EQ
  • Music ⇾ Volume Limit: App-Prefs:MUSIC&path=com.apple.Music:VolumeLimit

TV

- Settings ⇾ TV: App-Prefs:TVAPP

Photos

  • Photos: App-Prefs:Photos

Camera

  • Camera: App-Prefs:CAMERA
  • Camera ⇾ Record Video: App-Prefs:CAMERA&path=Record%20Video
  • Camera ⇾ Record Slo-mo: App-Prefs:CAMERA&path=Record%20Slo-mo

Books

  • Books: App-Prefs:IBOOKS

Game Center

  • Game Center: App-Prefs:GAMECENTER

The above list is a modification of the list from the article A Comprehensive Guide to All 120+ Settings URLs Supported by iOS and iPadOS 13.1 by Federico Viticci but adapted to the React Native.

--

--

Lukasz Kurant

Fullstack Developer interested in solving difficult problems.