2010-11-03 38 views
9

Từ những gì tôi hiểu bằng cách sử dụng mã như thế này:Làm cách nào để mở ứng dụng Cài đặt khi người dùng nhấn một nút?

NSURL* appUrl = [NSURL URLWithString: @"URL"]; 
[[UIApplication sharedApplication] openURL:appUrl]; 

tôi có thể mở Bản đồ, YouTube, Safari, Mail, iTunes và App Store, khi người dùng nói ép một nút.

Nhưng tôi băn khoăn là có thể mở ứng dụng Cài đặt bằng phương pháp này. Về cơ bản, lần đầu tiên người dùng mở ứng dụng của tôi, tôi muốn UIAlertView bật lên để cho người dùng biết rằng họ có thể thay đổi cài đặt cụ thể nếu họ muốn và họ nhấn OK hoặc họ nhấn cài đặt để đưa họ đến ứng dụng cài đặt.

Tôi biết rằng Apple làm điều đó trong một số trường hợp, nhưng các nhà phát triển có thể làm điều đó không?

+0

thể trùng lặp của [Mở ứng dụng Cài đặt từ một ứng dụng khác] (http://stackoverflow.com/questions/5655674/opening-the-settings-app-from-another-app) – Flexo

Trả lời

16

Như mỗi câu trả lời @ bnduati, trong iOS 8 bạn có thể sử dụng đoạn mã sau để mở các thiết lập của ứng dụng của bạn trong ứng dụng cài đặt:

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

Cũ answer:

Từ iOS 5.1 đến iOS 7 , không thể mở ứng dụng cài đặt từ ứng dụng khác.

Bạn có thể muốn điều tra this framework để cung cấp cài đặt trong ứng dụng.

Có khá một vài câu hỏi khác mà thảo luận về chủ đề này:

iPhone - how to put Settings bundle seen through System Settings App into your own App?

Launch iPhone setting screen from Application?

How to send a user to the main iPhone Settings screen from within your iPhone App

+0

Cảm ơn bạn!InAppSettingsKit hoạt động tuyệt vời btw cho trong cài đặt ứng dụng – cgossain

+0

Điều này có thể trong iOS 8+ bằng cách sử dụng 'UIApplicationOpenSettingsURLString'. Xem câu trả lời của @ bnduati dưới đây: http://stackoverflow.com/a/25311388/1148702 –

3

Tôi không biết điều này có khả thi hay không, nhưng một vấn đề là sau đó người dùng sẽ cần điều hướng quay lại ứng dụng của bạn. Thay vào đó, bạn có thể có chế độ xem tùy chọn riêng có thể ghi vào cùng một tệp mà ứng dụng tùy chọn sẽ sử dụng bằng cách sử dụng NSUserDefaults.

[[NSUserDefaults standardUserDefaults] setObject:value forKey:key];

[[NSUserDefaults standardUserDefaults] stringForKey:key]

6

Bạn có thể sử dụng trên iOS 5.0 trở lên:

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

Vui lòng dán liên kết từ tài liệu. –

+11

Điều này đã bị tắt trong iOS 5.1 – RPM

+0

... và được bật trong iOS 8 với 'UIApplicationOpenSettingsURLString' –

9

Trong iOS 8 và sau đó bạn có thể gửi cho người dùng cài đặt của ứng dụng của bạn theo cách sau:

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

Swift Cú pháp:

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

Swift 3

private func showAlertPrivacy() { 
    let alertController = UIAlertController(title: nil, message: "messagePrivacy", preferredStyle: .alert) 
    let alertNo = UIAlertAction(title: "No", style: .default) { (_) in 

    } 
    alertController.addAction(alertNo) 

    let alertSetting = UIAlertAction(title: "Settings", style: .default) { (_) in 

     UIApplication.shared.open(URL(string:UIApplicationOpenSettingsURLString)!, options: [:], completionHandler: { (_) in 

     }) 
    } 
    alertController.addAction(alertSetting) 

    present(alertController, animated: true) { 

    } 
} 
Các vấn đề liên quan