13

ある特定のシナリオでは、ユーザーをパスコード設定ページに誘導しています。以下は、これに使用されるコードです-

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

iOS 10 ベータ版にアップグレードした後、設定パスコード ページが表示されなくなり、代わりにアプリが終了します。

誰でもこれで私を助けてくれませんか。前もって感謝します 。

4

3 に答える 3

11

まさか。

iOS 10 ベータ 1 がリリースされる約 1 か月前に、私のアプリは Preference.app URL を開いたために拒否されました。アプリのレビュー チームから電話で説明がありました。現在、プライベート API を使用しているため許可されていません。現在のアプリの設定ページ (UIApplicationOpenSettingsURLString) を開くことのみが許可されます。

ですから、彼らが私を拒絶した理由は今では本当に理にかなっています。iOS 10以降、誰もシステム設定を開くことができなかったからです。

2016 年 12 月 8 日に回答を更新:

プライベート API を使用する (これらのコードを含むアプリを 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];
于 2016-06-23T08:19:44.860 に答える
5

iOS 10 で設定スキームが変更されました。これを使用できます。

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")!)
}
于 2016-12-09T11:06:04.720 に答える