Membuka aplikasi Pengaturan dari aplikasi lain


180

Oke, saya tahu ada banyak pertanyaan tentang itu, tetapi mereka semua berasal dari masa lalu.

Begitu. Saya tahu itu mungkin karena aplikasi Peta melakukannya.

Di aplikasi Peta jika saya mematikan pelokalan untuk aplikasi ini, ia mengirim saya pesan, dan jika saya menekan oke, "Pengaturan Aplikasi" akan terbuka. Dan pertanyaan saya adalah, bagaimana ini mungkin? Bagaimana saya bisa membuka "Pengaturan aplikasi" dari aplikasi saya sendiri?

Pada dasarnya saya perlu melakukan hal yang sama, jika pengguna mematikan lokasi untuk aplikasi saya, maka saya akan menunjukkan kepadanya pesan yang mengatakan sesuatu yang akan membuka "Pengaturan aplikasi"



1
Anda dapat membuka aplikasi pengaturan secara terprogram di iOS8 (tetapi tidak dalam versi yang lebih rendah dari iOS). Kode di bawah ini dalam jawaban.
Karan Dua

Jawaban:


291

Seperti yang disebutkan oleh Karan Dua ini sekarang dimungkinkan di iOS8 menggunakan UIApplicationOpenSettingsURLStringlihat Dokumentasi Apple .

Contoh:

Cepat 4.2

UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!)

Dalam Swift 3:

UIApplication.shared.open(URL(string:UIApplicationOpenSettingsURLString)!)

Dalam Swift 2:

UIApplication.sharedApplication().openURL(NSURL(string:UIApplicationOpenSettingsURLString)!)

Dalam Objective-C

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];

Sebelum ke iOS 8:

Kamu tidak bisa. Seperti yang Anda katakan ini telah dibahas berkali-kali dan yang muncul meminta Anda untuk mengaktifkan layanan lokasi disediakan oleh Apple dan bukan oleh App itu sendiri. Itu sebabnya ia bisa membuka aplikasi pengaturan.

Berikut beberapa pertanyaan & artikel terkait:

apakah mungkin membuka Aplikasi Pengaturan menggunakan openURL?

Secara terprogram membuka aplikasi pengaturan (iPhone)

Bagaimana saya bisa membuka aplikasi Pengaturan ketika pengguna menekan tombol?

iPhone: Membuka Panel Preferensi Aplikasi Dari Aplikasi

Buka UIPickerView dengan mengklik entri di preferensi aplikasi - Bagaimana caranya?

Buka aplikasi Pengaturan?

iOS: Anda Melakukan Pengaturan yang Salah


Jika Anda membutuhkan jawaban yang lebih otoritatif, Anda dapat mencoba bertanya di forum Pengembang Apple < developer.apple.com/devforums > atau mengajukan bug di < developer.apple.com/bugreporter > - jika itu adalah masalah yang diketahui, ia harus kembali sebagai "berperilaku benar" atau duplikat dari bug asli.
Vincent Gable


2
Ini sekarang dimungkinkan di iOS 8 menggunakan [NSURL URLWithString: UIApplicationOpenSettingsURLString]
LightningStryk

1
di swift 3 - UIApplication.shared.openURL (URL (string: UIApplicationOpenSettingsURLString)!)
GMHSJ

1
Berhati-hatilah dalam menggunakan metode ini. Saya menggunakannya dan beberapa bulan kemudian aplikasi saya ditolak dengan pesan berikut dari Apple: Aplikasi Anda menggunakan skema "non-publik: root =" URL non-publik, yang merupakan entitas pribadi. Penggunaan API non-publik tidak diizinkan di App Store karena dapat menyebabkan pengalaman pengguna yang buruk jika API ini berubah. Terus menggunakan atau menyembunyikan API non-publik dalam pengiriman aplikasi ini di masa depan dapat mengakibatkan penghentian akun Pengembang Apple Anda, serta penghapusan semua aplikasi terkait dari App Store.
Nick Kirsten

133

Dari @Yatheeshaless 's jawabannya :

Anda dapat membuka aplikasi pengaturan secara terprogram di iOS8, tetapi tidak di versi iOS sebelumnya.

Cepat:

   UIApplication.sharedApplication().openURL(NSURL(string:UIApplicationOpenSettingsURLString)!)

Swift 4:

if let url = NSURL(string: UIApplicationOpenSettingsURLString) as URL? {
    UIApplication.shared.openURL(url)
}

Swift 4.2 (BETA):

if let url = NSURL(string: UIApplication.openSettingsURLString) as URL? {
    UIApplication.shared.open(url, options: [:], completionHandler: nil)
}

Tujuan-C:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];

23
Ini muncul untuk membuka bagian aplikasi Anda dari aplikasi Pengaturan. Pengguna harus menekan Kembali beberapa kali untuk melihat layar utama Pengaturan.
wjl

1
Koreksi kecil ..[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
Paito

10
@ Paito Baris di atas mengarahkan ke pengaturan pribadi aplikasi . Apakah ada cara untuk mengarahkan ke bagian privasi pengaturan perangkat? Berikan komentar jika Anda tahu. Pengalihan ini dimungkinkan, karena saya menemukannya di aplikasi peta di mana ia mengarahkan ke pengaturan lokasi di bagian privasi.
Pavan Kotesh

1
Koreksi Swift kecil: UIApplication. SharedApplication (). OpenURL (NSURL (string: UIApplicationOpenSettingsURLString)!)
vbezhenar

1
@ PavanKotesh- Ya tetapi pengaturan aplikasi akan memiliki izin yang Anda butuhkan, dalam kasus saya, saya memerlukan akses ke kontak, yang muncul dalam pengaturan aplikasi dengan kode di atas.
Tejas K

58

IYA!! Anda dapat membuka layar Device Settings, saya telah menguji di iOS 9.2

Langkah 1. kita perlu menambahkan skema URL

Buka Pengaturan proyek -> Info -> Jenis URL -> Tambahkan Skema URL Baru

masukkan deskripsi gambar di sini

Langkah 2. Buka Pengaturan secara terprogram Berkat @davidcann

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];

Kami juga dapat meluncurkan sub-layar seperti Musik, Lokasi dll. Juga hanya dengan menggunakan nama yang tepat

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=MUSIC"]];

Lihat daftar nama lengkap ini di sini yang dibagikan oleh Henri Normak


Memperbarui:

Sesuai komentar, semua orang ingin tahu apa yang terjadi setelah perubahan ini ke status pengiriman aplikasi saya?

Begitu YES!! I got successful update submission and application is available on store without any complain.

Hanya untuk mengonfirmasi, saya Baru saja mengunduh pagi ini dan menonaktifkan layanan Lokasi, dan kemudian memulai aplikasi, yang meminta saya untuk izin lokasi dan kemudian popup peringatan saya ada di sana untuk mengirim saya pada pengaturan -> halaman layanan lokasi -> Diaktifkan -> Itu dia!!

! [PEMBERITAHUAN: Aplikasi Anda mungkin ditolak ... meskipun disetujui, aplikasi itu dapat ditolak di versi mendatang jika Anda menggunakan metode ini ...] 4


Terima kasih, bekerja untuk saya, di iOS 6 dan 7 juga. Apakah Anda sudah mencoba mendapatkannya melalui proses peninjauan Apple?
Flo

1
@Flo Saya akan memberi tahu Anda, karena saat ini saya telah mendorong untuk pengujian beta.
swiftBoy

1
iOS 9.3. Bekerja seperti pesona. Saya bahkan melihat "Kembali ke [nama aplikasi saya]" di dalam aplikasi pengaturan. Tentunya, ini didukung karena saya melihat banyak aplikasi lain yang melakukan hal semacam ini!
EricWasTaken

13
Di iOS 10, url baru bukanlah "prefs: root = ...." tetapi "App-Prefs: root = ...".
Drico

1
Aplikasi Anda mungkin ditolak ... bahkan jika disetujui, aplikasi itu dapat ditolak di versi mendatang jika Anda menggunakan metode ini ...
Mihir Mehta

18

Anda dapat menggunakan ini di iOS 5.0 dan yang lebih baru: Ini tidak lagi berfungsi.

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];

3
@ MarkGranoff Tidak, sepertinya secara teknis tidak terdokumentasi, tapi tidak seburuk API tidak berdokumen normal, karena itu hanya Skema URL. Anda dapat memeriksanya dengan canOpenURL: pertama. Juga, ada utas tentang hal ini di sini: devforums.apple.com/message/543818
davidcann

3
Anda dapat masuk ke berbagai area dalam pengaturan sesuai dengan artikel ini . Misalnya URL ini akan membawa Anda ke pengaturan Bluetoothprefs:root=General&path=Bluetooth
program

1
Saya mendapat aplikasi yang ditolak karena menggunakan API pribadi karena saya membuka url: @ "prefs: root = Brightness". Biasanya, tidak terdokumentasi berarti pribadi.
Guillaume

4
Apple telah menyatakan bahwa ini bukan API publik, dan tidak lagi didukung. Ada bug yang diajukan tentang masalah ini, nomor 11253669.
Don Wilson

2
Saya hanya melihat bahwa ini berfungsi di aplikasi Strava. Matikan Bluetooth & kemudian nyalakan di aplikasi. Kemudian ia meminta untuk masuk ke aplikasi pengaturan & langsung ke pengaturan Bluetooth. Ini untuk iOS5.1. Apakah ada cara untuk mengetahui skema apa yang mereka gunakan?
Semut

14

Pembaruan iOS 10

Apple mengubah metode untuk membuka async pada utas utama. Namun, mulai sekarang hanya mungkin untuk membuka pengaturan aplikasi di pengaturan asli.

[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];

Pembaruan iOS 9

Sekarang dimungkinkan untuk langsung menuju ke menu sub-pengaturan. Namun, skema URL harus dibuat. Itu bisa dilakukan dengan dua cara:

  1. XCode - Anda akan menemukannya di Target, Info, Skema URL. Kemudian, cukup ketik prefs.
  2. Menambahkan langsung ke * -Info.plist. Tambahkan yang berikut ini: <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLSchemes</key> <array> <string>prefs</string> </array> </dict> </array>

Kemudian kodenya:

Cepat

UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=General&path=Keyboard")!)

Objektif-c

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=Keyboard"]];


1
Saya mencoba solusi iOS 10.x, dan itu tidak berhasil untuk saya - tidak ada yang terjadi.
Mark Peters

@MarkPeters, apakah Anda sudah menemukan cara? Ini bisa sangat membantu. Terima kasih.
Roohul Poolak

Tidak, belum. Saya masih tidak tahu apakah itu bug iOS atau apakah Apple baru saja menghapus fitur tersebut.
Mark Peters

Saya pikir, mereka masih bekerja dengan Extensions. Mantan aplikasi ada Magic Launcherdi Appstore.
Trident

4

Di Swift 3 / iOS 10+ ini sekarang terlihat seperti

if let url = URL(string: "App-Prefs:root=LOCATION_SERVICES") {
    UIApplication.shared.open(url, completionHandler: .none)
}

bagaimana menuju ke layar notifikasi? karena jika biarkan url = URL (string: "App-Prefs: root = NOTIFICATIONS_ID & path = io.artup.artup") {jika # tersedia (iOS 10.0, *) {UIApplication. Shared.open (url, completionHandler: .none)} } tetapi saya pergi ke notifikasi di iPhone 6 bukan di iPhone 7 plus?
user3804063

3
Ini akan membuat aplikasi Anda ditolak. Mereka menggunakan API pribadi.
Bersaelor

Saya telah menolak aplikasi saya, menggunakan "App-Prefs: root" ini
Malder

1
Tekankan apa yang orang lain sebutkan di sini, jangan gunakan metode ini, itu akan membuat aplikasi Anda ditolak. Mengirim aplikasi berulang kali dengan demikian akan membuat akun pengembang Anda ditutup.
CodeBrew

4

Swift 3:

guard let url = URL(string: UIApplicationOpenSettingsURLString) else {return}
if #available(iOS 10.0, *) {
  UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
  // Fallback on earlier versions
  UIApplication.shared.openURL(url)
}

4

Sepertinya Anda dapat menggunakan prefs:<area>URL untuk membuka pengaturan dan pergi ke area tertentu. Apple dapat mengubah ini dan merusak aplikasi Anda jadi selalu periksa apakah Anda dapat membukanya terlebih dahulu.

Dari artikel ini mereka telah mendaftarkan beberapa dari mereka untuk iOS 13.1:

URL pengaturan

iCloud

  • iCloud: prefs:root=CASTLE
  • Cadangan iCloud: prefs:root=CASTLE&path=BACKUP

Radio Nirkabel

  • Wifi: prefs:root=WIFI
  • Bluetooth: prefs:root=Bluetooth
  • Seluler: prefs:root=MOBILE_DATA_SETTINGS_ID

Hotspot Pribadi

  • Hotspot Pribadi: prefs:root=INTERNET_TETHERING
  • Hotspot Pribadi ⇾ Berbagi Keluarga: prefs:root=INTERNET_TETHERING&path=Family%20Sharing
  • Hotspot Pribadi ⇾ Kata Sandi Wi-Fi: prefs:root=INTERNET_TETHERING&path=Wi-Fi%20Password

VPN

  • VPN: prefs:root=General&path=VPN

Notifikasi

  • Pemberitahuan: prefs:root=NOTIFICATIONS_ID
  • Pemberitahuan ⇾ Saran Siri: prefs:root=NOTIFICATIONS_ID&path=Siri%20Suggestions

Kedengarannya

  • Suara: prefs:root=Sounds
  • Nada dering: prefs:root=Sounds&path=Ringtone

Jangan ganggu

  • Jangan ganggu: prefs:root=DO_NOT_DISTURB
  • Jangan Ganggu ⇾ Izinkan Panggilan Dari: prefs:root=DO_NOT_DISTURB&path=Allow%20Calls%20From

Waktu layar

  • Waktu layar: prefs:root=SCREEN_TIME
  • Waktu Layar ⇾ Downtime: prefs:root=SCREEN_TIME&path=DOWNTIME
  • Waktu Layar ⇾ Batas Aplikasi: prefs:root=SCREEN_TIME&path=APP_LIMITS
  • Waktu Layar ⇾ Selalu Diizinkan: prefs:root=SCREEN_TIME&path=ALWAYS_ALLOWED

Umum

  • Umum: prefs:root=General
  • Umum ⇾ Tentang: prefs:root=General&path=About
  • Umum ⇾ Pembaruan Perangkat Lunak: prefs:root=General&path=SOFTWARE_UPDATE_LINK
  • Umum ⇾ CarPlay: prefs:root=General&path=CARPLAY
  • Umum ⇾ Penyegaran Aplikasi Latar Belakang: prefs:root=General&path=AUTO_CONTENT_DOWNLOAD
  • Umum ⇾ Multitasking (khusus iPad): prefs:root=General&path=MULTITASKING
  • Umum ⇾ Tanggal & Waktu: prefs:root=General&path=DATE_AND_TIME
  • Umum ⇾ Keyboard: prefs:root=General&path=Keyboard
  • Umum ⇾ Papan Ketik ⇾ Papan Ketik: prefs:root=General&path=Keyboard/KEYBOARDS
  • Umum ⇾ Keyboard ⇾ Keyboard Perangkat Keras: prefs:root=General&path=Keyboard/Hardware%20Keyboard
  • Umum ⇾ Keyboard ⇾ Penggantian Teks: prefs:root=General&path=Keyboard/USER_DICTIONARY
  • Umum ⇾ Keyboard ⇾ Keyboard Satu Tangan: prefs:root=General&path=Keyboard/ReachableKeyboard
  • Umum ⇾ Bahasa & Wilayah: prefs:root=General&path=INTERNATIONAL
  • Umum ⇾ Kamus: prefs:root=General&path=DICTIONARY
  • Umum ⇾ Profil: prefs:root=General&path=ManagedConfigurationList
  • Umum ⇾ Reset: prefs:root=General&path=Reset

Pusat kendali

  • Pusat kendali: prefs:root=ControlCenter
  • Pusat Kontrol ⇾ Sesuaikan Kontrol: prefs:root=ControlCenter&path=CUSTOMIZE_CONTROLS

Tampilan

  • Tampilan: prefs:root=DISPLAY
  • Tampilan Lock Kunci Otomatis: prefs:root=DISPLAY&path=AUTOLOCK
  • Tampilan ⇾ Ukuran Teks: prefs:root=DISPLAY&path=TEXT_SIZE

Aksesibilitas

  • Aksesibilitas: prefs:root=ACCESSIBILITY

Wallpaper

  • Wallpaper: prefs:root=Wallpaper

Siri

  • Siri: prefs:root=SIRI

Pensil Apple

  • Pensil Apple (khusus iPad): prefs:root=Pencil

ID Wajah

  • ID Wajah: prefs:root=PASSCODE

SOS darurat

  • SOS Darurat: prefs:root=EMERGENCY_SOS

Baterai

  • Baterai: prefs:root=BATTERY_USAGE
  • Baterai Health Kesehatan Baterai (khusus iPhone): prefs:root=BATTERY_USAGE&path=BATTERY_HEALTH

Pribadi

  • Pribadi: prefs:root=Privacy
  • Privasi ⇾ Layanan Lokasi: prefs:root=Privacy&path=LOCATION
  • Privasi ⇾ Kontak: prefs:root=Privacy&path=CONTACTS
  • Privasi ⇾ Kalender: prefs:root=Privacy&path=CALENDARS
  • Privasi ⇾ Pengingat: prefs:root=Privacy&path=REMINDERS
  • Privasi ⇾ Foto: prefs:root=Privacy&path=PHOTOS
  • Privasi ⇾ Mikrofon: prefs:root=Privacy&path=MICROPHONE
  • Privasi Rec Pengenalan Pidato: prefs:root=Privacy&path=SPEECH_RECOGNITION
  • Privasi ⇾ Kamera: prefs:root=Privacy&path=CAMERA
  • Privasi ⇾ Gerakan: prefs:root=Privacy&path=MOTION\

Toko aplikasi

  • Toko aplikasi: prefs:root=STORE
  • App Store ⇾ Unduhan Aplikasi: prefs:root=STORE&path=App%20Downloads
  • App Store ⇾ Putar Video Otomatis: prefs:root=STORE&path=Video%20Autoplay

Dompet

  • Dompet: prefs:root=PASSBOOK

Kata Sandi & Akun

  • Kata Sandi & Akun: prefs:root=ACCOUNTS_AND_PASSWORDS
  • Kata Sandi & Akun ⇾ Ambil Data Baru: prefs:root=ACCOUNTS_AND_PASSWORDS&path=FETCH_NEW_DATA
  • Kata Sandi & Akun ⇾ Tambah Akun: prefs:root=ACCOUNTS_AND_PASSWORDS&path=ADD_ACCOUNT

Surat

  • Surat: prefs:root=MAIL
  • Mail ⇾ Pratinjau: prefs:root=MAIL&path=Preview
  • Mail ⇾ Opsi Gesek: prefs:root=MAIL&path=Swipe%20Options
  • Email ⇾ Pemberitahuan: prefs:root=MAIL&path=NOTIFICATIONS
  • Mail ⇾ Diblokir: prefs:root=MAIL&path=Blocked
  • Mail Action Aksi Thread yang Diedam: prefs:root=MAIL&path=Muted%20Thread%20Action
  • Email Options Opsi Pengirim yang Diblokir: prefs:root=MAIL&path=Blocked%20Sender%20Options
  • Mail ⇾ Tandai Alamat: prefs:root=MAIL&path=Mark%20Addresses
  • Mail ⇾ Tingkatkan Level Penawaran: prefs:root=MAIL&path=Increase%20Quote%20Level
  • Mail ⇾ Sertakan Lampiran dengan Balasan: prefs:root=MAIL&path=Include%20Attachments%20with%20Replies
  • Mail ⇾ Tanda tangan: prefs:root=MAIL&path=Signature
  • Mail Account Akun Default: prefs:root=MAIL&path=Default%20Account

Kontak

  • Kontak: prefs:root=CONTACTS

Kalender

  • Kalender: prefs:root=CALENDAR
  • Kalender ⇾ Kalender Alternatif: prefs:root=CALENDAR&path=Alternate%20Calendars
  • Kalender ⇾ Sinkronisasi: prefs:root=CALENDAR&path=Sync
  • Kalender ⇾ Waktu Peringatan Default: prefs:root=CALENDAR&path=Default%20Alert%20Times
  • Kalender ⇾ Kalender Default: prefs:root=CALENDAR&path=Default%20Calendar

Catatan

  • Catatan: prefs:root=NOTES
  • Catatan ⇾ Akun Default: prefs:root=NOTES&path=Default%20Account
  • Catatan ⇾ Kata Sandi: prefs:root=NOTES&path=Password
  • Catatan ⇾ Urutkan Catatan Menurut: prefs:root=NOTES&path=Sort%20Notes%20By
  • Catatan ⇾ Catatan Baru Mulai Dengan: prefs:root=NOTES&path=New%20Notes%20Start%20With
  • Catatan ⇾ Sortir Item yang Diperiksa: prefs:root=NOTES&path=Sort%20Checked%20Items
  • Catatan ⇾ Garis & Kisi: prefs:root=NOTES&path=Lines%20%26%20Grids
  • Catatan ⇾ Akses Catatan dari Layar Kunci: prefs:root=NOTES&path=Access%20Notes%20from%20Lock%20Screen

Pengingat

  • Pengingat: prefs:root=REMINDERS
  • Pengingat ⇾ Daftar Default: prefs:root=REMINDERS&path=DEFAULT_LIST

Memo Suara

  • Memo Suara: prefs:root=VOICE_MEMOS

Telepon

  • Telepon: prefs:root=Phone

Pesan

  • Pesan: prefs:root=MESSAGES

FaceTime

  • FaceTime: prefs:root=FACETIME

Peta

  • Peta: prefs:root=MAPS
  • Peta ⇾ Mengemudi & Navigasi: prefs:root=MAPS&path=Driving%20%26%20Navigation
  • Peta ⇾ Transit: prefs:root=MAPS&path=Transit

Kompas

  • Kompas: prefs:root=COMPASS

Mengukur

  • Mengukur: prefs:root=MEASURE

Safari

  • Safari: prefs:root=SAFARI
  • Safari ⇾ Pemblokir Konten: prefs:root=SAFARI&path=Content%20Blockers
  • Safari ⇾ Unduhan: prefs:root=SAFARI&path=DOWNLOADS
  • Safari ⇾ Tutup Tab: prefs:root=SAFARI&path=Close%20Tabs
  • Safari ⇾ Hapus Riwayat dan Data: prefs:root=SAFARI&path=CLEAR_HISTORY_AND_DATA
  • Safari Zoom Zoom Halaman: prefs:root=SAFARI&path=Page%20Zoom
  • Safari ⇾ Minta Situs Web Desktop: prefs:root=SAFARI&path=Request%20Desktop%20Website
  • Safari ⇾ Pembaca: prefs:root=SAFARI&path=Reader
  • Safari ⇾ Kamera: prefs:root=SAFARI&path=Camera
  • Safari ⇾ Mikrofon: prefs:root=SAFARI&path=Microphone
  • Safari ⇾ Lokasi: prefs:root=SAFARI&path=Location
  • Safari ⇾ Tingkat Lanjut: prefs:root=SAFARI&path=ADVANCED

Berita

  • Berita: prefs:root=NEWS

Kesehatan

  • Kesehatan: prefs:root=HEALTH

Pintasan

  • Pintasan: prefs:root=SHORTCUTS

Musik

  • Musik: prefs:root=MUSIC
  • Musik Data Data Seluler: prefs:root=MUSIC&path=com.apple.Music:CellularData
  • Musik ⇾ Optimalkan Penyimpanan: prefs:root=MUSIC&path=com.apple.Music:OptimizeStorage
  • Musik ⇾ EQ: prefs:root=MUSIC&path=com.apple.Music:EQ
  • Musik Limit Batas Volume: prefs:root=MUSIC&path=com.apple.Music:VolumeLimit

televisi

  • Pengaturan ⇾ TV: prefs:root=TVAPP

Foto

  • Foto: prefs:root=Photos

Kamera

  • Kamera: prefs:root=CAMERA
  • Kamera ⇾ Rekam Video: prefs:root=CAMERA&path=Record%20Video
  • Kamera ⇾ Rekam Slo-mo: prefs:root=CAMERA&path=Record%20Slo-mo

Buku

  • Buku: prefs:root=IBOOKS

Pusat Permainan

  • Pusat Permainan: prefs:root=GAMECENTER

3

UIApplicationOpenSettingsURLStringini hanya akan berfungsi jika sebelumnya Anda telah diizinkan untuk izin apa pun. Misalnya Lokasi, Foto, Kontak, akses pemberitahuan Push. Jadi, jika Anda tidak memiliki izin dari pengguna:

Jika iOS 10 atau lebih ,

Ini akan membuka Pengaturan tetapi kemudian crash. Alasannya, tidak ada pengaturan untuk aplikasi Anda.

Kode di bawah ini akan membuka pengaturan aplikasi Anda di dalam Pengaturan iOS.

NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
    [[UIApplication sharedApplication] openURL:url];
}

Karena tidak tersedianya perangkat, saya tidak dapat memeriksa ini di iOS <10.

Juga, saya dapat menemukan kode di bawah ini dari beberapa intinya dan berfungsi dengan baik di iOS 10 juga. Tetapi saya tidak yakin apakah ini akan disetujui oleh tim peninjau Apple atau tidak.

https://gist.github.com/johnny77221/bcaa5384a242b64bfd0b8a715f48e69f


3

Di Swift 3 yang saya butuhkan adalah ini (di sini misalnya, redirect ke notifikasi aplikasi saya):

if let url = URL(string: "App-Prefs:root=NOTIFICATIONS_ID&path=your app bundleID") {
    if #available(iOS 10.0, *) {
        UIApplication.shared.open(url, completionHandler: .none)
    } else {
        // Fallback on earlier versions
    }
}

Sumber: inti phynet .

Ini bekerja dengan saya hanya ketika pengaturan di latar belakang. Ini akan mengarahkan Anda ke pengaturan pemberitahuan aplikasi Anda, tetapi jika pengaturan tidak berjalan di latar belakang, itu hanya akan mengarahkan Anda ke pengaturan pemberitahuan secara umum.


1

Anda dapat menggunakan kode di bawah ini untuk itu.

[[UIApplication sharedApplication]openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];

1

SWIFT 4.0

'openURL' sudah tidak digunakan lagi di iOS 10.0: Silakan gunakan openURL: options: completionHandler: sebagai gantinya

UIApplication.shared.open(URL.init(string: UIApplicationOpenSettingsURLString)! , options: [:], completionHandler: nil)

1

Cepat 4

Saya lebih suka membuka pengaturan dengan cara yang lebih aman,

if let settingUrl = URL(string:UIApplicationOpenSettingsURLString) {

    UIApplication.shared.open(settingUrl)
}
else {
    print("Setting URL invalid")
}

0

Swift Anda dapat menggunakan fungsi berikut untuk membuka Pengaturan Aplikasi dengan Halaman Bluetooth

func openSettingsApp(){
    if let settings = NSURL(string: "prefs:root=Bluetooth") {
        UIApplication.sharedApplication().openURL(settings)
    }
}

Sekali lagi ini tidak akan membuka Pengaturan Aplikasi. Ini akan membuka aplikasi pengaturan dengan Bluetooth karena ini menghubungkan mendalam ke bluetooth.


0

Diuji dengan iOS 10. Bekerja

NSArray* urlStrings = @[@"prefs:root=WIFI", @"App-Prefs:root=WIFI"];
for(NSString* urlString in urlStrings){
NSURL* url = [NSURL URLWithString:urlString];
if([[UIApplication sharedApplication] canOpenURL:url]){
    [[UIApplication sharedApplication] openURL:url];
    break;
}
}

Selamat Coding :)


3
Ini akan membuat aplikasi Anda ditolak. Baru saja terjadi pada saya.
Bersaelor

Begitukah, Tapi baris kode ini akan langsung membawa Anda ke lokasi yang diinginkan
Praveen Sharma

1
Ya itu akan membawamu ke sana. Saya tidak mengatakan itu tidak berhasil, saya hanya menunjukkan bahwa itu akan membuat Anda ditolak selama peninjauan aplikasi. "prefs: root" adalah skema url pribadi sesuai dengan yang dikatakan oleh tim peninjau kepada kami. (Anda mungkin beruntung dan mereka tidak memperhatikannya untuk sementara waktu, kami memiliki fitur untuk sementara waktu dan melewati beberapa ulasan sebelum pengulas melihatnya)
Bersaelor

Terima kasih atas informasinya, saya akan mencoba sesuatu yang lain, Tetapi saat ini saya terjebak dalam konektivitas VPN, Mencari solusi untuk ini.
Praveen Sharma

0

Untuk menambah jawaban yang diterima: (dari dokumentasi pengembang apple) "Ketika Anda membuka URL yang dibangun dari string ini (openSettingsURLString), sistem meluncurkan aplikasi Pengaturan dan menampilkan pengaturan khusus aplikasi, jika ada." Jadi, jika Anda ingin membuka pengaturan untuk aplikasi Anda, buat Pengaturan Anda sendiri. Bundle.


-1

Tambahkan ini ke kelas Anda,

 public class func showSettingsAlert(title:String,message:String,onVC viewController:UIViewController,onCancel:(()->())?){
            YourClass.show2ButtonsAlert(onVC: viewController, title: title, message: message, button1Title: "Settings", button2Title: "Cancel", onButton1Click: {
                if let settingsURL = NSURL(string: UIApplicationOpenSettingsURLString){
                    UIApplication.sharedApplication().openURL(settingsURL)
                }
                }, onButton2Click: {
                    onCancel?()
            })
        }

 public class func show2ButtonsAlert(onVC viewController:UIViewController,title:String,message:String,button1Title:String,button2Title:String,onButton1Click:(()->())?,onButton2Click:(()->())?){
            dispatch_async(dispatch_get_main_queue()) {
                let alert : UIAlertController = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert)

                alert.addAction(UIAlertAction(title: button1Title, style:.Default, handler: { (action:UIAlertAction) in
                    onButton1Click?()
                }))

                alert.addAction(UIAlertAction(title: button2Title, style:.Default, handler: { (action:UIAlertAction) in
                    onButton2Click?()
                }))

                viewController.presentViewController(alert, animated: true, completion: nil)
            }
        }

Sebut seperti ini,

YourClass.showSettingsAlert("App would like to access camera", message: "App would like to access camera desc", onVC: fromViewController, onCancel: {
  print("canceled")
})
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.