2017-06-30 4 views
0

私はObjective-Cの初心者です。私はiPhoneの設定ページでTouchIDページを開きたいが、私のコードは単にオンライン公開の設定ページを開きます。私は以下のコードを書いた。設定ページでTouchIDページを開く方法は?

======オープンiPhoneの設定ページ=======

if (&UIApplicationOpenSettingsURLString != NULL) 
    { 
     NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; 
     [[UIApplication sharedApplication] openURL:url]; 
     NSLog(@"&UIApplicationOpenSettingsURLString != NULL"); 
    } 
    else 
    { 
     // Present some dialog telling the user to open the settings app. 
     NSLog(@"&UIApplicationOpenSettingsURLString == NULL"); 
    } 

どのように私はこの問題を解決するためのコードを変更することができますか?

答えて

0

EDIT:このソリューションは、もはやあなたは、あなたに言われて、この前のiOS 10.

に行うことはできません


のiOS 11+上で動作

URLが何であるかを「見つけ出す」必要があります。

あなたはこのコードを試すことができます。

// URL to open general settings in case the TouchID one was not found. 
NSString * defaultSettingsStr = (&UIApplicationOpenSettingsURLString != NULL ? UIApplicationOpenSettingsURLString : @"prefs:root"); 

// Array of possible URLs, differ in various iOS versions 
NSArray * urlStrs = @[@"App-Prefs:root=TOUCHID_PASSCODE", 
       @"Prefs:root=TOUCHID_PASSCODE", 
       defaultSettingsStr]; 

for (NSString * urlStr in urlStrs) { 
    NSURL * url = [NSURL URLWithString:urlStr]; 

    if ([[UIApplication sharedApplication] canOpenURL:url]) { 
     // openURL is deprecated since iOS 10 
     [[UIApplication sharedApplication] openURL:url]; 
     break; 
    } 
} 
+0

おかげで多くのことを〜! そのコードは私が〜〜したいです! –

+0

「App-Prefs:root = TOUCHID_PASSCODE」はiOS 11では動作しません。 – myaug

+0

私の理解では、iOS 11ではメインの「設定」ページ以外の場所には移動できません。 (これ以上のサブセクションに行くことはありません) – Pochi

関連する問題