2016-06-22 43 views
13

Trong một trường hợp cụ thể, tôi sẽ đưa người dùng đến trang cài đặt mật mã. bên dưới là mã được sử dụng cho việc này -iOS 10 beta: Lược đồ URL không hoạt động nhưng hoạt động trên iOS 9

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

Sau khi nâng cấp lên phiên bản beta 10 beta, tôi không còn được đưa đến trang mật khẩu cài đặt thay vì chấm dứt ứng dụng.

Bất kỳ ai cũng có thể giúp tôi với điều này. Cảm ơn trước .

+2

trang ưu tiên khai mạc ngoài tùy chọn ứng dụng riêng của bạn chưa được phép trong một thời gian. Có vẻ như trong iOS 10 Apple đã thực thi thêm hạn chế này. – Paulw11

+0

Cảm ơn, @ Paulw11. Khi khách hàng của tôi đang chờ đợi điều này, nó sẽ rất biết ơn nếu bạn cũng có thể cung cấp cho tôi thêm chi tiết về điều này, để tôi có thể giải thích khách hàng của tôi giống nhau. – vijeesh

+1

Tùy chọn URL đã bị xóa trong iOS 5.1. Tôi ngạc nhiên rằng mã của bạn đã được làm việc ở tất cả - http://stackoverflow.com/questions/8246070/ios-launching-settings-restrictions-url-scheme – Paulw11

Trả lời

11

Chưa có cách nào.

Khoảng 1 tháng trước khi iOS 10 beta 1 được phát hành, ứng dụng của tôi bị từ chối vì mở URL Preference.app. Nhóm đánh giá ứng dụng đã gọi điện cho tôi để giải thích: Hiện không được phép vì lý do: Sử dụng API riêng tư. Chỉ cho phép mở trang cài đặt của ứng dụng hiện tại (UIApplicationOpenSettingsURLString).

Vì vậy, nó thực sự có ý nghĩa tại sao họ từ chối tôi. Bởi vì không ai có thể mở thiết lập hệ thống kể từ khi iOS 10

câu trả lời Cập nhật lúc 08 Tháng 12 năm 2016:

Sử dụng API tư nhân (Đừng gửi các ứng dụng với các mã để App Store):

@interface PrivateApi_LSApplicationWorkspace 
- (BOOL)openSensitiveURL:(id)arg1 withOptions:(id)arg2; 
@end 

PrivateApi_LSApplicationWorkspace* _workspace; 

_workspace = [NSClassFromString(@"LSApplicationWorkspace") new]; 

BOOL result = (BOOL)[_workspace openSensitiveURL:[NSURL URLWithString:@"Prefs:root=YOURSETTINGURLHERE"] withOptions:nil]; 
+0

Bạn có thể gửi cho tôi liên kết của quá trình xem xét táo được quy tắc này được đề cập bởi vì khi tôi đã đi qua tài liệu của họ về quá trình xem xét tôi không thể tìm thấy điều này. – vijeesh

+6

Xin lỗi, không có liên kết nào về nó. Nhóm đánh giá App Store đã gọi điện cho tôi để giải thích và như bạn đã làm, tôi đã hỏi quy tắc ở đâu, trong hướng dẫn đánh giá hoặc ở nơi khác? Họ chỉ nói, đó là quy tắc, nó không được viết ở bất kỳ đâu và đó là lý do tại sao tôi gọi cho bạn để nói với bạn rằng đó là quy tắc mới và quy tắc sẽ không được công khai, ít nhất là không công khai. BTW, nó thực sự là một cuộc gọi khủng khiếp, mà cảm thấy như "Tôi là cha của bạn đó là quy tắc bởi vì tôi nói đó là một quy tắc". – Croath

+0

Ah, Apple cũ tốt. Làm cho khách hàng của họ đau khổ từ năm 2007. – phreakhead

-2

Trên iOS 10, bạn có thể sử dụng openURL:options:completionHandler: để thay thế;

Bạn cũng có thể xem bài viết này (openURL Deprecated in iOS 10) để biết thêm chi tiết.

+0

cảm ơn liên kết nhưng dường như không giải quyết được gì – luky

4

Đề án prefs đã thay đổi trên iOS 10, bạn có thể sử dụng này:

if #available(iOS 10.0, *) { 
    UIApplication.shared.open(URL.init(string:"App-Prefs:root= PASSCODE")!, options: [UIApplicationOpenURLOptionUniversalLinksOnly:true], completionHandler:{(success: Bool?) -> Void in}}) 
} else { 
    // Fallback on earlier versions 
    UIApplication.shared.openURL(URL.init(string:"Prefs:root= PASSCODE")!) 
} 
Các vấn đề liên quan