Có cơ hội để hiển thị cài đặt.app trong iOS bằng cách nhấp vào nút không? Nó sẽ hoạt động với iOS 5.1 nên url "prefs: root ..." không có tùy chọn.Ứng dụng Cài đặt quyền truy cập trong iOS
Bạn có ý tưởng cách giải quyết vấn đề này không?
Có cơ hội để hiển thị cài đặt.app trong iOS bằng cách nhấp vào nút không? Nó sẽ hoạt động với iOS 5.1 nên url "prefs: root ..." không có tùy chọn.Ứng dụng Cài đặt quyền truy cập trong iOS
Bạn có ý tưởng cách giải quyết vấn đề này không?
Bạn không thể thực hiện việc này trên iOS 5.1. Nhiều khả năng Apple đã loại bỏ khả năng đó một cách có chủ ý (bạn sẽ nhận được "Vui lòng nhập một URL hợp lệ", trong khi Twitter vẫn có thể gọi các Cài đặt). Vui lòng tham khảo:
iOS6 cho thấy một tùy chọn để mở ứng dụng cài đặt trực tiếp từ một 'AlertView' (hiển thị tự động) nếu phát hiện nếu bạn đang cố gắng để gửi đến FB hay Twitter mà không cần các thiết lập tài khoản.
Tôi biết câu hỏi là khoảng 5.1 cụ thể, nhưng trong trường hợp bất cứ ai khác quan tâm:
Tính đến iOS 8, nó có thể mất một người dùng từ ứng dụng của bạn trực tiếp vào ứng dụng Cài đặt . Chúng sẽ được liên kết sâu vào trang Cài đặt cụ thể của ứng dụng, nhưng chúng có thể trở lại màn hình Cài đặt cấp cao nhất.
UPDATE:
Nhờ bình luận Pavel, tôi đơn giản hóa câu lệnh if và tránh các EXC_BAD_ACCESS trên iOS 7.
UPDATE 2:
Nếu mục tiêu triển khai của bạn được thiết lập để 8.0 trở lên, Xcode 6.3 sẽ cung cấp cho bạn các cảnh báo sau:
Comparison of address of 'UIApplicationOpenSettingsURLString' not equal to a null pointer is always true
Điều này là do tính năng có sẵn bắt đầu từ 8.0, vì vậy con trỏ này sẽ không bao giờ là NULL
. Nếu mục tiêu triển khai của bạn là 8.0+, chỉ cần xóa câu lệnh if bên dưới.
if (&UIApplicationOpenSettingsURLString != NULL) {
NSURL *appSettings = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication sharedApplication] openURL:appSettings];
}
Trên iOS 8 của Apple đã cho chúng tôi khả năng để đi đến Cài đặt ứng dụng ngay từ ứng dụng của chúng tôi
bạn có thể áp dụng mã này:
- (IBAction)openSettings:(id)sender {
BOOL canOpenSettings = (UIApplicationOpenSettingsURLString != NULL);
if (canOpenSettings) {
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication sharedApplication] openURL:url];
}
}
UIApplicationOpenSettingsURLString gây ra một EXC_BAD_ACCESS trên iOS7. Tốt hơn theo cách này: nếu (& UIApplicationOpenSettingsURLString) – Pavel
Cảm ơn @Pavel, tôi đã cập nhật mẫu mã của mình. – djibouti33