iOS 시작 설정-> 제한 URL 체계


86

최근 에이 멋진 웹 사이트 에서 자세히 설명 할 수있는 멋진 iOS5 사용자 지정 설정 URL 체계를 발견했습니다 .

이 기능이 작동하여 사용자를 내 응용 프로그램에서 설정 앱으로 안내합니다.

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

그러나 매개 변수 를 통해 제한 경로로 직접 라우팅 할 수 없습니다 path.

[[UIApplication sharedApplication] openURL:
   [NSURL URLWithString:@"prefs:root=General&path=Restrictions"]];

누구든지 이것에 대한 문서를 찾거나이 일을 할 수 있었습니까?

어떤 통찰력이라도 대단히 감사하겠습니다. 사용자가 인앱 구매를 사용하도록 설정하고 사용자가 제한을 수동으로 클릭하지 않도록합니다 (명백하지 않음).


2
아무도 Touch ID 및 암호의 URL을 알고 있습니까?
Fabian Köbel

1
터치 ID에 사용 : prefs : root = TOUCHID_PASSCODE ( stackoverflow.com/questions/35410746/… )
Fabian Köbel

답변:


144

AS @Nix 왕 의 ANSWER THIS IS NOT IN WORK IOS 10


경고 :이 방법은 iOS 5.1 이상을 실행하는 장치에서는 작동하지 않습니다. 아래 Hlung의 설명을 참조하십시오.

그것은 가능성이 있습니다 path구성 요소가 실제 섹션이 아닌 다른 이름을 가지고 있지만, 그것은 당신이 현재 URL에서 바로 해당 섹션에 액세스 할 수 수도 있습니다. 가능한 URL 목록을 찾았고 제한 사항이 없습니다. 아직 찾지 못했을 수도 있습니다.

설정 앱에서 현재 알려진 URL 목록 :

  • prefs : root = General & path = 정보
  • prefs : root = General & path = ACCESSIBILITY
  • prefs : root = AIRPLANE_MODE
  • prefs : root = General & path = AUTOLOCK
  • prefs : root = General & path = USAGE / CELLULAR_USAGE
  • prefs : root = 밝기
  • prefs : root = General & path = Bluetooth
  • prefs : root = General & path = DATE_AND_TIME
  • prefs : root = FACETIME
  • prefs : root = 일반
  • prefs : root = General & path = Keyboard
  • prefs : root = CASTLE
  • prefs : root = CASTLE & path = STORAGE_AND_BACKUP
  • prefs : root = General & path = INTERNATIONAL
  • prefs : root = LOCATION_SERVICES
  • prefs : root = ACCOUNT_SETTINGS
  • prefs : root = MUSIC
  • prefs : root = MUSIC & path = EQ
  • prefs : root = MUSIC & path = VolumeLimit
  • prefs : root = General & path = Network
  • prefs : root = NIKE_PLUS_IPOD
  • prefs : root = 참고
  • prefs : root = NOTIFICATIONS_ID
  • prefs : root = 전화
  • prefs : root = 사진
  • prefs : root = General & path = ManagedConfigurationList
  • prefs : root = General & path = 재설정
  • prefs : root = 사운드 & path = 벨소리
  • prefs : root = Safari
  • prefs : root = General & path = Assistant
  • prefs : root = 사운드
  • prefs : root = General & path = SOFTWARE_UPDATE_LINK
  • prefs : root = STORE
  • prefs : root = TWITTER
  • prefs : root = General & path = USAGE
  • prefs : root = VIDEO
  • prefs : root = General & path = Network / VPN
  • prefs : root = 배경 화면
  • prefs : root = WIFI
  • prefs : root = INTERNET_TETHERING

54
약간의 경고, idownloadblog.com/2011/11/29/iphone-5-1-disables-shortcutsiOS 설정에 대한 모든 URL 체계가 iOS5.1에서 제거 될 것이라고 말했습니다 (따라서 URL은 prefs : root = General & path = Network 더 이상 작동하지 않을 것입니다) 그러니 유의하십시오.
Hlung

3
그것들은 완전히 제거되지는 않았습니다.이 URL 링크를 UIAlertView의 버튼에 넣으면됩니다. 따라서 UIAlertView에 앱이 백그라운드로 이동하고 설정이 열리고 확인을 클릭하고 취소하는 등의 경고를 넣으면됩니다.
zambono

4
더 이상 작동하지 않고 내 앱 중 하나에서 작동했지만 더 이상 작동하지 않았습니다.
zambono

5
iOS8부터 다음 URL로 내장 설정 앱을 시작할 수 있습니다.[NSURL URLWithString:UIApplicationOpenSettingsURLString]
Jason Moore

2
ios10에 대한 해결책 / 대안을 부탁드립니다.
ranjit.x.singh

48

iOS8부터는 다음을 사용하여 내장 설정 앱을 열 수 있습니다.

NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
   [[UIApplication sharedApplication] openURL:url];
}

실제 URL 문자열은 @"app-settings:"입니다. 문자열 ( "Bluetooth", "GENERAL"등)에 다른 섹션을 추가하려고했지만 기본 설정 화면에 대한 링크 만 작동하는 것 같습니다. 그렇지 않으면 답글을 게시하십시오.


10
특정 호출이 설정 시작 URL이기 때문입니다. 앱의 사용자 지정 설정이있는 경우 열립니다. 그렇지 않은 경우 설정 앱을 기본 화면으로 엽니 다. developer.apple.com/library/ios/documentation/UIKit/Reference/…
JAL

1
앱에 활성화 / 비활성화하려는 특정 설정이있는 경우 환상적인 대답입니다. 모두 한곳에서 원하는 구성을 얻기 위해 설정을 통해 사용자를 탐색 할 필요가 없습니다. 감사!
kyleturner

1
@ FabianKöbel TouchID 및 암호 용 계정을 찾을 수 있었습니까?
ShayanK

1
@AspersionCast : 당신이 사용할 수의 환경 설정을 : 루트 = TOUCHID_PASSCODE ( stackoverflow.com/questions/35410746/... )
파비안 Köbel

이것은 현재 Apple이 승인 한 유일한 방법으로 설정 앱을 실행하는 것으로 보입니다.
u2Fan

42

iOS 앱에 prefs URL 스키마를 추가하면 iOS 5에서 사용할 수있는 모든 스키마를 사용할 수 있습니다. iOS 9에서 테스트했지만 이전 버전에서도 작동 할 것이라고 생각합니다.


이 트릭은 필요하지 않은 iOS 8에서만 작동합니다.
Valeriy Van

1
그러나 iOS 8에서도 마찬가지입니다. 예를 들어이 URL 수치를 애플리케이션에 추가하지 않으면 WiFi 설정을 열 수 없습니다.
Pedro Tôrres 2015

그래 네가 맞아. 이 사용 사례에 대해 생각하지 않았습니다.
Valeriy Van

9
@conorgriffin 당신과 그 설정을 궁금해하는 모든 사람들을 위해 : Targets | (신청) | 정보 | URL 유형 | +
Kevin Sylvestre 2015 년

누군가 "prefs : root"URL을 사용하여 거부 당했다고 말했습니다. stackoverflow.com/questions/8246070/…
Hlung

33

최신 정보:

prefs: iOS 10부터는 작동하지 않습니다.


4
대안은 무엇입니까?
OXXY

1
이 공식 Apple Doc ( developer.apple.com/library/ios/qa/qa1924/_index.html )이 의도적으로 환경 설정 문제를 해결하고 2016 년 8 월 2 일에 작성 되었기 때문에 그것은 미친 짓 입니다.
daspianist

1
그 문서는 키보드 설정을 위해서만 사용하라고 말하고 있습니다 (특정 용도 이외의 것은 위반입니다.)
Peter Johnson

불행히도 iOS 10의 키보드 설정에서도 작동하지 않는 것 같습니다.
Intrications

4
하지만 prefs:더 이상 작동, 다음 (오프닝 일반적으로 적어도)을 수행합니다App-Prefs::root=Settings&path=General
daspianist

22

네, 이것을 보았습니다 (그리고 더 많은 것), 심지어 테스트 응용 프로그램에서 구현했습니다. Apple로부터 결정적인 단어를 얻어야하지만 커뮤니티의 의견은 5.1에서 공개적으로 "발견 / 게시"된 후 Apple이이를 허용하지 않았기 때문에이를 포함하는 응용 프로그램은 허용되지 않습니다.

08/01/12 업데이트 : WiFi 설정 대화 상자를 프로그래밍 방식으로 시작하는 방법이 있는지 내 개발자 계정을 통해 Apple에 요청했습니다. 응답은 다음과 같습니다.

"Google 엔지니어가 귀하의 요청을 검토 한 결과 현재 배송중인 시스템 구성을 고려할 때 원하는 기능을 달성 할 수있는 지원되는 방법이 없다는 결론을 내 렸습니다."


9
이 기능이 필요한 모든 사람에게 공식 버그 보고서를 기록하는 것이 좋습니다. 더 많이보고 될수록 더 많이 표시되고 향후 지원되는 솔루션이 제공 될 가능성이 높아집니다. bugreport.apple.com
Matt Connolly

18

iOS 9 에서는 다시 작동합니다!

설정> 일반> 키보드 를 열려면 다음을 사용합니다.

prefs:root=General&path=Keyboard

또한 키보드 로 더 멀리 갈 수 있습니다 .

prefs:root=General&path=Keyboard/KEYBOARDS

방금 PopKey 앱에서 이것을 발견했습니다. 설정> Wi-Fi 설정에 대한 URL을 시도 했는데도 작동합니다. 이것이 남아 있기를 바랍니다.
Jamie McDaniel

이 계획에 추가해야합니까 LSApplicationQueriesSchemes에서 info.plist?
Warpling 2015 년

2
아니요, 그렇지 않습니다. openURL : 메소드와 함께 사용하십시오.
Mikhail

1
이 기능을 사용하여 웹 페이지의 설정에 연결하려고하는데 iPhone의 Safari에서는 작동하지만 iPad에서는 작동하지 않는 것 같습니다. 둘 다 9.0.2에 있습니다. 진심으로, 애플?
Randy H.

3
여전히 prefs URL 체계를 대상에 추가해야 함
shim

7

설정 응용 프로그램에서 Bluetooth 메뉴를 열고 싶었는데 위 경로 (prefs : root = General & path = Bluetooth)가 작동하지 않았습니다. 결국 나를 위해 일하게 된 것은

UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=Bluetooth")!)

prefs먼저 URL 체계가 정의되어 있는지 확인하십시오 .


이는 최근 iOS 버전에서 블루투스 메뉴가 이동했기 때문입니다. 이제 일반 아래가 아닌 최상위 설정 입니다.
Nate

@Imran : 당신은 -stuff를 잊었습니다 prefs.
Michael Dorner

5

iOS10 용 솔루션. 잘 작동합니다.

NSURL *URL = [NSURL URLWithString:@"App-prefs:root=TWITTER"];
[[UIApplication sharedApplication] openURL:URL options:@{} completionHandler:nil];

이것이 합법적입니까? 앱 제출이 성공했다고해서 이것이 합법적이라는 의미는 아닙니다. 그것은 미래에 결국 실패 할 수 있습니다 ..
스타스

@Stas : 아니요, 개인 API이기 때문에 그렇지 않습니다.
Tejas K

4

iOS10부터 사용할 수 있습니다.

UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root")!) 

일반 설정을 엽니 다.

또한 알려진 URL을 추가하여 특정 설정을 열 수 있습니다 (가장 찬성 응답에서 볼 수 있음). 예를 들어 아래는 touchID와 암호를 엽니 다.

UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root=TOUCHID_PASSCODE")!)

1
"App-Prefs : root = TOUCHID_PASSCODE"는 iOS 11에서 작동하지 않습니다. 다른 솔루션이 있습니까?
myaug

App-Prefs검토 중에 앱이 거부되는 비공개 API입니다.
Tejas K

2

내가 찾은 다른 것이 있습니다.

  1. "prefs"URL Scheme을 정의한 후 "prefs : root = Safari & path = ContentBlockers" 는 Simulator (iOS 9.1 영어 )에서 작동하지만 Simulator (중국어 간체) 에서는 작동하지 않습니다 . Safari로 이동하지만 콘텐츠 차단기는 아닙니다. 해외 앱인 경우주의하세요.
    업데이트 : 이유를 모르겠습니다. 이제 더 이상 ContentBlockers로 이동할 수 없습니다. 동일한 코드, 동일한 버전이 지금 작동하지 않습니다. :(

  2. 실제 장치 (내는 iPhone 6S 및 iPad mini 2)에서 "Safari"는 "SAFARI" , "Safari"는 실제 장치에서 작동하지 않으며 "SAFARI"는 이제 시뮬레이터에서 작동합니다.

    #if arch(i386) || arch(x86_64)
        // Simulator
        let url = NSURL(string: "prefs:root=Safari")!
    #else
        // Device
        let url = NSURL(string: "prefs:root=SAFARI")!
    #endif
    
    if UIApplication.sharedApplication().canOpenURL(url) {
        UIApplication.sharedApplication().openURL(url)
    }
    
  3. 지금까지 iPhone과 iPad의 차이점을 찾지 못했습니다.


이 작업을 다시 한 적이 있습니까? 그렇지 않다면 그런 수치!
Ryan Brodie 2015

@RyanBrodie "그런 수치심"이란 무슨 뜻입니까?
Kaiyuan Xu

매우 불행하다고, Safari의 컨텐츠 차단 설정에 직접 연결하는 좋은 것입니다
라이언 브로디

6
@RyanBrodie 작동 할 수 있더라도 지금은 App Store 앱에 사용하지 않는 것이 좋습니다. 오늘 아침에 iTunes Connect에서 "거부"되었습니다. "prefs : root"는 개인 API (앱이 있습니다) 의 환경 설정을 사용 : 루트를 앱 스토어에 ... 하나님은 알고 왜)
개원 쑤

머리를 올려 주셔서 대단히 감사하다는 것을 몰랐습니다!
Ryan Brodie 2015

2

IOS 10의 앱 알림 설정에 대해 잘 작동합니다 (테스트 됨).

if(&UIApplicationOpenSettingsURLString != nil){
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}


0

여기서 하나의 뉴스를 업데이트하고 있습니다. 'prefs :'만 사용하는 것은 Apple에서 거부하지 않았으며 테스트하고 앱 스토어에서 승인 여부를 확인했습니다 (2016 년 8 월). 고마워.


[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=DO_NOT_DISTURB"]];장치의 DND 설정을 열기 위해 이것을 사용하고 있습니다. 애플은 이것을 거부할까요?
Shreyank 2016-09-09

리뷰 만 통과 했습니까 아니면 작동합니까? openURL이 설정으로 이동한다는 의미입니까? 그것은 내 편에서 작동하지 않았습니다.
Ahmet Akkök 2013
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.