Menggunakan UIApplication.openSettingsURLString
Pembaruan untuk Swift 5.1
override func viewDidAppear(_ animated: Bool) {
let alertController = UIAlertController (title: "Title", message: "Go to Settings?", preferredStyle: .alert)
let settingsAction = UIAlertAction(title: "Settings", style: .default) { (_) -> Void in
guard let settingsUrl = URL(string: UIApplication.openSettingsURLString) else {
return
}
if UIApplication.shared.canOpenURL(settingsUrl) {
UIApplication.shared.open(settingsUrl, completionHandler: { (success) in
print("Settings opened: \(success)") // Prints true
})
}
}
alertController.addAction(settingsAction)
let cancelAction = UIAlertAction(title: "Cancel", style: .default, handler: nil)
alertController.addAction(cancelAction)
present(alertController, animated: true, completion: nil)
}
Cepat 4.2
override func viewDidAppear(_ animated: Bool) {
let alertController = UIAlertController (title: "Title", message: "Go to Settings?", preferredStyle: .alert)
let settingsAction = UIAlertAction(title: "Settings", style: .default) { (_) -> Void in
guard let settingsUrl = URL(string: UIApplicationOpenSettingsURLString) else {
return
}
if UIApplication.shared.canOpenURL(settingsUrl) {
UIApplication.shared.open(settingsUrl, completionHandler: { (success) in
print("Settings opened: \(success)") // Prints true
})
}
}
alertController.addAction(settingsAction)
let cancelAction = UIAlertAction(title: "Cancel", style: .default, handler: nil)
alertController.addAction(cancelAction)
present(alertController, animated: true, completion: nil)
}
viewDidAppear
metode, dengan tombolSettings
danCancel
UIApplication.sharedApplication().openURL(yourCustomURL)
dari aplikasi saat ini, tetapi Anda tidak memiliki akses dari aplikasi PengaturanJawaban asli di bawah ini
Cepat 5
Cepat 4
CATATAN: Metode berikut ini berfungsi untuk semua versi di bawah iOS 11, untuk versi yang lebih tinggi aplikasi mungkin ditolak karena ini adalah API pribadi
Terkadang kami ingin membawa pengguna ke pengaturan selain pengaturan aplikasi kami. Metode berikut akan membantu Anda mencapai itu:
Pertama, konfigurasikan Skema URL di proyek Anda. Anda akan menemukannya di Target -> Info -> Skema URL. klik tombol + dan ketik prefs di Skema URL
Cepat 5
Cepat 3
Cepat
Objektif-C
dan berikut ini semua URL yang tersedia
** Di iOS <12 **
Di iOS 13
Pre-aplikasi: DO_NOT_DISTURB
Tidak diuji
App-prefs: TWITTER (??)
Catatan: Pengaturan jaringan tidak akan dibuka dalam simulator, tetapi tautan akan berfungsi pada perangkat nyata.
sumber
App-Prefs
sebagai ganti dariprefs
string URL. misalnyaApp-Prefs:root=WIFI
App-Prefs
atauprefs:root
karena ini adalah API pribadi, dan kecuali Anda sangat beruntung aplikasi Anda akan ditolak.Di iOS 8+ Anda dapat melakukan hal berikut:
Cepat 4
sumber
UIApplication.shared.openURL(URL(string: UIApplicationOpenSettingsURLString)!)
URL(string: UIApplication.openSettingsURLString).map { UIApplication.shared.open($0, options: [:], completionHandler: nil) }
Menggunakan petunjuk @ vivek, saya mengembangkan kelas utilitas berdasarkan Swift 3 , harap Anda menghargai!
Ini sangat membantu karena API akan berubah dengan pasti dan Anda dapat melakukan refactor sekali dan sangat cepat!
sumber
Tanggapan pertama dari Skema URL Khusus Aplikasi berfungsi untuk saya di iOS 10.3.
sumber
App-Prefs:root=Privacy&path=LOCATION
bekerja untuk saya untuk mendapatkan pengaturan lokasi umum. Catatan: hanya berfungsi di perangkat.sumber
di ios10 / Xcode 8 di simulator:
bekerja
tidak.
sumber
NS
awalan telah dihapus di iOS 10?Saya telah melihat baris kode ini
tidak berfungsi, itu tidak berfungsi untuk saya di ios10 / Xcode 8, hanya perbedaan kode kecil, harap ganti dengan ini
Swift3
Ubah dengan
Semoga ini bisa membantu. Bersulang.
sumber
kata peringatan: skema
prefs:root
atauApp-Prefs:root
URL dianggap API pribadi. Apple dapat menolak aplikasi Anda jika Anda menggunakannya, berikut adalah apa yang mungkin Anda dapatkan ketika mengirimkan aplikasi Anda:sumber
Swift 4.2, iOS 12
The
open(url:options:completionHandler:)
Metode telah diperbarui untuk menyertakan opsi non-nihil kamus, yang pada posting ini hanya berisi satu pilihan yang mungkin jenisUIApplication.OpenExternalURLOptionsKey
(dalam contoh).Secara eksplisit membuat URL, seperti dengan "App-Prefs", telah, AFAIK, mendapatkan beberapa aplikasi ditolak dari toko.
sumber
Menambahkan ke @Luca Davanzo
iOS 11, beberapa pengaturan izin telah pindah ke jalur aplikasi:
sumber
SWIFT 4
Ini bisa mengambil pengaturan spesifik aplikasi Anda, jika itu yang Anda cari.
sumber
Seperti di atas @niravdesai mengatakan App-prefs. Saya menemukan bahwa
App-Prefs:
berfungsi untuk perangkat iOS 9, 10 dan 11. yang diuji. di mana karenaprefs:
hanya berfungsi di iOS 9.sumber