2012-03-12 56 views
7

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?

Trả lời

0

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.

I have elaborated this over here

9

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]; 
} 
+3

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

+0

Cảm ơn @Pavel, tôi đã cập nhật mẫu mã của mình. – djibouti33

1

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]; 
    } 
} 
Các vấn đề liên quan