다른 앱에서 설정 앱 열기
네, 여러 가지 의문점이 있다는 건 알지만 모두 옛날 이야기예요.
그래서 저는 맵앱이 해주기 때문에 가능하다고 알고 있습니다.
지도 앱에서 이 앱의 현지화를 끄면 메시지가 표시되고, OK를 누르면 "설정 앱"이 열립니다.그리고 제 질문은, 어떻게 이것이 가능한가?내 앱에서 '설정 앱'을 열려면 어떻게 해야 하나요?
기본적으로 같은 작업을 해야 하는데, 사용자가 내 앱의 위치를 끄면 "Setting app"을 여는 메시지를 표시합니다.
Karan Dua가 언급한 바와 같이 iOS8에서는 다음을 사용하여 이것이 가능합니다.UIApplicationOpenSettingsURLString
Apple의 문서를 참조해 주세요.
예:
스위프트 4.2
UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!)
Swift 3의 경우:
UIApplication.shared.open(URL(string:UIApplicationOpenSettingsURLString)!)
Swift 2의 경우:
UIApplication.sharedApplication().openURL(NSURL(string:UIApplicationOpenSettingsURLString)!)
목표-C에서
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
iOS 8 이전 버전:
안 돼요.당신이 말한 것처럼, 위치 서비스를 켜달라는 팝업은 앱이 아니라 애플이 제공하는 것입니다.그렇기 때문에 설정 어플리케이션을 열 수 있습니다.
다음은 관련된 질문과 기사입니다.
사용자가 버튼을 눌렀을 때 설정 앱을 열려면 어떻게 해야 합니까?
iPhone: 응용 프로그램에서 응용 프로그램 기본 설정 패널 열기
앱 기본 설정에서 항목을 클릭하여 UIPicker View를 엽니다. - 방법?
@Yatheshaless의 답변에서:
iOS8에서는 설정 앱을 프로그래밍 방식으로 열 수 있지만 이전 버전의 iOS에서는 열 수 없습니다.
신속:
UIApplication.sharedApplication().openURL(NSURL(string:UIApplicationOpenSettingsURLString)!)
Swift 4:
if let url = NSURL(string: UIApplicationOpenSettingsURLString) as URL? {
UIApplication.shared.openURL(url)
}
Swift 4.2(베타):
if let url = NSURL(string: UIApplication.openSettingsURLString) as URL? {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
목표-C:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
YES!! Device Settings 화면을 시작할 수 있습니다. iOS 9.2에서 테스트했습니다.
1단계. URL 스킴을 추가해야 합니다.
프로젝트 설정 --> 정보 --> URL 유형 --> 새 URL 스킴 추가
스텝 2. @davidcann을 사용하여 프로그래밍 방식으로 설정 실행
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];
또한 음악, 위치 등의 서브스크린도 적절한 이름을 사용하여 실행할 수 있습니다.
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=MUSIC"]];
앙리 노맥이 공유한 풀네임 리스트를 봐주세요.
업데이트:
코멘트에 의하면, 이 신청서의 송신 상황을 변경한 후의 상황을 알고 싶다고 합니다.
★★★★★★★★★★★★★★★★★.YES!! I got successful update submission and application is available on store without any complain.
확인을 위해 오늘 아침에 다운로드하여 위치 서비스를 비활성화한 후 앱을 실행하면 위치 허가를 요청하고 경보 팝업이 나타나 설정 -> 위치 서비스 페이지 --> 활성화 --> 바로 그거야!
![알림: 앱이 거부될 수 있습니다...승인된 경우에도 이 방법을 사용하면 향후 버전에서 거부될 수 있습니다.]4
하면 될 것요.prefs:<area>
설정을 열고 특정 영역으로 이동하기 위한 URL.Apple이 이러한 항목을 변경하여 앱을 손상시킬 수 있으므로 항상 먼저 열 수 있는지 확인하십시오.
이 기사에서는 iOS 13.1 용 몇 가지를 소개하고 있습니다.
설정 URL
아이클라우드
- iCloud:
prefs:root=CASTLE
- 백업: iCloud »:
prefs:root=CASTLE&path=BACKUP
무선 무선
- ★★★★★★★★★★★★★★★★★★★:
prefs:root=WIFI
- bluetooth스스 bluetooth:
prefs:root=Bluetooth
- ★★★★★★★★★★★★★★★★★:
prefs:root=MOBILE_DATA_SETTINGS_ID
퍼스널 핫스팟
- 핫스팟: ★★★★★★★★★★★★★★★★★★★:
prefs:root=INTERNET_TETHERING
- 핫스팟 공유:
prefs:root=INTERNET_TETHERING&path=Family%20Sharing
- 핫스팟 © 비밀번호 : personal인- 、 Wi-Fi 비비 :
prefs:root=INTERNET_TETHERING&path=Wi-Fi%20Password
VPN
- VPN:
prefs:root=General&path=VPN
통지
- 지::
prefs:root=NOTIFICATIONS_ID
- Siri : 림 、 Siri 、 not :
prefs:root=NOTIFICATIONS_ID&path=Siri%20Suggestions
소리.
- 사드::
prefs:root=Sounds
- : 소리 ring :
prefs:root=Sounds&path=Ringtone
방해 안 함
- [ : ]:
prefs:root=DO_NOT_DISTURB
- Disturb " From : [ Do Not Disturb ][ Allow Calls From ] :
prefs:root=DO_NOT_DISTURB&path=Allow%20Calls%20From
스크린 타임
- : ★★★★★★★★★★★★★★★★★★★★★
prefs:root=SCREEN_TIME
- 타임 : [ Downtime ] :
prefs:root=SCREEN_TIME&path=DOWNTIME
- 시간 제한: 영영간 screen screen screen screen :
prefs:root=SCREEN_TIME&path=APP_LIMITS
- [ Time ]: [ Always Allowed ] : [ Allowed ]:
prefs:root=SCREEN_TIME&path=ALWAYS_ALLOWED
일반
- 반::
prefs:root=General
- :개요 :
prefs:root=General&path=About
- ™ Software :소프트웨어 업데이트:
prefs:root=General&path=SOFTWARE_UPDATE_LINK
- General © : general반반 general general general general general general :
prefs:root=General&path=CARPLAY
- General ©Refresh : 일반 general general general general general general general general general general general general general general general 。
prefs:root=General&path=AUTO_CONTENT_DOWNLOAD
- ★★★★★★★★★(iPad) :
prefs:root=General&path=MULTITASKING
- General © & :
prefs:root=General&path=DATE_AND_TIME
- 키보드 : 반반§ general general general :
prefs:root=General&path=Keyboard
- keyboards키보드 : 반키보드 보키보드 :
prefs:root=General&path=Keyboard/KEYBOARDS
- 하드웨어 키보드 하드웨어:
prefs:root=General&path=Keyboard/Hardware%20Keyboard
- General (일반 치환 (텍스트):
prefs:root=General&path=Keyboard/USER_DICTIONARY
- 원핸드 키보드 키보드:
prefs:root=General&path=Keyboard/ReachableKeyboard
- Language & Region : 및 :
prefs:root=General&path=INTERNATIONAL
- : 사전 :
prefs:root=General&path=DICTIONARY
prefs:root=General&path=ManagedConfigurationList
- " " " 리셋: "
prefs:root=General&path=Reset
컨트롤 센터
- Center : 어어 control control :
prefs:root=ControlCenter
- Center Controls : Control Center » control control :
prefs:root=ControlCenter&path=CUSTOMIZE_CONTROLS
표시
- ★★★★
prefs:root=DISPLAY
- Lock : ](자동 잠금) [Auto])를 표시합니다.
prefs:root=DISPLAY&path=AUTOLOCK
- " " " " " " :
prefs:root=DISPLAY&path=TEXT_SIZE
접근성
- 근::
prefs:root=ACCESSIBILITY
배경화면
- 지::
prefs:root=Wallpaper
시리
- 리::
prefs:root=SIRI
애플 펜슬
- Apple 슬( ( iPad ) : ) :
prefs:root=Pencil
페이스 아이디
- ID: 굴 id ID:
prefs:root=PASSCODE
긴급 SOS
- SOS: ★★ SOS:
prefs:root=EMERGENCY_SOS
배터리
- ★★★★★★:
prefs:root=BATTERY_USAGE
- (iPhone) :
prefs:root=BATTERY_USAGE&path=BATTERY_HEALTH
사생활
- ★★★★★★★★★★★★★★★★:
prefs:root=Privacy
- ® Services : " " © " " privacy privacy privacy privacy privacy privacy privacy privacy privacy :
prefs:root=Privacy&path=LOCATION
- ™
prefs:root=Privacy&path=CONTACTS
- Calendars : 라 privacy privacy privacy privacy privacy privacy privacy privacy privacy :
prefs:root=Privacy&path=CALENDARS
prefs:root=Privacy&path=REMINDERS
- Photos : 라라버 privacy privacy privacy privacy privacy :
prefs:root=Privacy&path=PHOTOS
- Privacy: 프버 © privacy :
prefs:root=Privacy&path=MICROPHONE
- ® Recognition : (프라이버시) 음성 인식 : (영어) © ()
prefs:root=Privacy&path=SPEECH_RECOGNITION
- Privacy " 라버 privacy privacy privacy privacy privacy privacy privacy "
prefs:root=Privacy&path=CAMERA
- Motion : :
prefs:root=Privacy&path=MOTION\
앱스토어
- ★★★★★★★★★★★★★★★★★:
prefs:root=STORE
- 앱 다운로드: 스어 app app운운운운운운운운운운운운운운:
prefs:root=STORE&path=App%20Downloads
- 자동재생:
prefs:root=STORE&path=Video%20Autoplay
지갑
- : 갑: :
prefs:root=PASSBOOK
비밀번호 및 계정
- 및 " " " " " :
prefs:root=ACCOUNTS_AND_PASSWORDS
- & Accounts " Data : " " " " " " " " " " " 。
prefs:root=ACCOUNTS_AND_PASSWORDS&path=FETCH_NEW_DATA
- & Accounts ] [ Add Account ]:
prefs:root=ACCOUNTS_AND_PASSWORDS&path=ADD_ACCOUNT
메일
- 일::
prefs:root=MAIL
- ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★:
prefs:root=MAIL&path=Preview
- 메일 » 스와이프 옵션:
prefs:root=MAIL&path=Swipe%20Options
- 메일 » 알림:
prefs:root=MAIL&path=NOTIFICATIONS
- 메일 » 차단됨:
prefs:root=MAIL&path=Blocked
- 메일 m 뮤트 스레드 액션:
prefs:root=MAIL&path=Muted%20Thread%20Action
- 메일 blocked 차단된 발신인 옵션:
prefs:root=MAIL&path=Blocked%20Sender%20Options
- 메일 » 주소 표시:
prefs:root=MAIL&path=Mark%20Addresses
- 메일 » 견적 수준 증가:
prefs:root=MAIL&path=Increase%20Quote%20Level
- 메일 § 회신 첨부 파일 포함:
prefs:root=MAIL&path=Include%20Attachments%20with%20Replies
- 메일 » 서명:
prefs:root=MAIL&path=Signature
- 메일 » 기본 계정:
prefs:root=MAIL&path=Default%20Account
연락처
- 연락처:
prefs:root=CONTACTS
캘린더
- 캘린더:
prefs:root=CALENDAR
- 캘린더 » 대체 캘린더:
prefs:root=CALENDAR&path=Alternate%20Calendars
- 캘린더 » 동기화:
prefs:root=CALENDAR&path=Sync
- 캘린더 » 기본 경보 시간:
prefs:root=CALENDAR&path=Default%20Alert%20Times
- Calendar 、 Calendar : 린 calendar calendar calendar calendar calendar:: 。
prefs:root=CALENDAR&path=Default%20Calendar
메모들
- ★★★★★★★
prefs:root=NOTES
- 」 어카운트: 「 」
prefs:root=NOTES&path=Default%20Account
- 비밀번호:
prefs:root=NOTES&path=Password
- 기준: 참참§ notes notes notes notes notes notes notes notes notes:
prefs:root=NOTES&path=Sort%20Notes%20By
- 새 고음음음음음음음음음음음음음음음 notes notes notes notes notes notes:
prefs:root=NOTES&path=New%20Notes%20Start%20With
- [ Items ] : 의의 、 [ Sort Checked Items ]:
prefs:root=NOTES&path=Sort%20Checked%20Items
- 회선 및
prefs:root=NOTES&path=Lines%20%26%20Grids
- 화면에서 :
prefs:root=NOTES&path=Access%20Notes%20from%20Lock%20Screen
주의사항
- :
prefs:root=REMINDERS
- " " " " " 。
prefs:root=REMINDERS&path=DEFAULT_LIST
음성 메모
- 성성 voice voice:
prefs:root=VOICE_MEMOS
전화
- ★★★★★★
prefs:root=Phone
메시지
- ★★★★★★★
prefs:root=MESSAGES
페이스 타임
- Time : 이이 face face :
prefs:root=FACETIME
지도
- ★★★★
prefs:root=MAPS
- (Driving & Navigation) : "Driving & Navigation" (드라이빙 & ) :
prefs:root=MAPS&path=Driving%20%26%20Navigation
- Transit : 도도 maps maps maps maps maps :
prefs:root=MAPS&path=Transit
나침반
- 나침반:
prefs:root=COMPASS
재다
- 정::
prefs:root=MEASURE
사파리
- ★★★★★★★★★★★
prefs:root=SAFARI
- Safari Safari © 콘 safari :
prefs:root=SAFARI&path=Content%20Blockers
- Downloads : Safari :
prefs:root=SAFARI&path=DOWNLOADS
- 탭 Safari 탭 :
prefs:root=SAFARI&path=Close%20Tabs
- Safari © Data : Safari © Safari の safari safari safari safari safari safari safari safari safari safari :
prefs:root=SAFARI&path=CLEAR_HISTORY_AND_DATA
- : Safari 페이지 줌:
prefs:root=SAFARI&path=Page%20Zoom
- Safari © 데 safari safari safari safari safari safari :
prefs:root=SAFARI&path=Request%20Desktop%20Website
- » Safari © 리:: :
prefs:root=SAFARI&path=Reader
- : Safari © 카카: :
prefs:root=SAFARI&path=Camera
- Safari Safari © : :
prefs:root=SAFARI&path=Microphone
- : Safari © 위: :
prefs:root=SAFARI&path=Location
- : Safari © : safari :
prefs:root=SAFARI&path=ADVANCED
뉴스
- ★★★★★★
prefs:root=NEWS
헬스
- ★★★★★★★★★★★★★★★★*
prefs:root=HEALTH
숏컷
- " " " 。
prefs:root=SHORTCUTS
음악
- 악::
prefs:root=MUSIC
- ® 셀룰러 : 악악 music music music music music music music music music music :
prefs:root=MUSIC&path=com.apple.Music:CellularData
- " " " " " " :
prefs:root=MUSIC&path=com.apple.Music:OptimizeStorage
- EQ : music EQ:
prefs:root=MUSIC&path=com.apple.Music:EQ
- 제한 :볼륨 제한 :
prefs:root=MUSIC&path=com.apple.Music:VolumeLimit
TV
- TV : 정 、 TV :
prefs:root=TVAPP
사진들
- : ★★★★★
prefs:root=Photos
카메라
- 메라::
prefs:root=CAMERA
- [ Video ] : [ Record Video ] :
prefs:root=CAMERA&path=Record%20Video
- ® 레코드 : camera메 camera camera camera camera camera camera camera camera camera camera camera camera camera :
prefs:root=CAMERA&path=Record%20Slo-mo
책들
- : ★★★★★★★★★★★★★★
prefs:root=IBOOKS
게임 센터
- 센터: ★★★★★★★★★★★★★★★★★★★★:
prefs:root=GAMECENTER
iOS 5.0 이상에서 사용할 수 있습니다.
더 이상 작동하지 않습니다.
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];
iOS 10 업데이트
애플은 메인 스레드에서 비동기식으로 메서드를 변경했습니다.그러나 앞으로는 앱 설정을 네이티브 설정으로만 열 수 있습니다.
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
iOS 9 업데이트
이제 하위 설정 메뉴로 직접 이동할 수 있습니다.단, URL 스킴을 작성해야 합니다.다음 두 가지 방법으로 수행할 수 있습니다.
- XCode - 대상, 정보, URL 스킴에 있습니다.그런 다음 prefs를 입력합니다.
- *-Info.plist 입니다.다음을 추가합니다.
<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLSchemes</key> <array> <string>prefs</string> </array> </dict> </array>
그 후 코드:
재빠르다
UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=General&path=Keyboard")!)
목적-c
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=Keyboard"]];
Swift 3/iOS 10+에서는 다음과 같이 표시됩니다.
if let url = URL(string: "App-Prefs:root=LOCATION_SERVICES") {
UIApplication.shared.open(url, completionHandler: .none)
}
Swift 3에서 필요한 것은 이것뿐입니다(예를 들어 앱 알림으로 리다이렉트 합니다).
if let url = URL(string: "App-Prefs:root=NOTIFICATIONS_ID&path=your app bundleID") {
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, completionHandler: .none)
} else {
// Fallback on earlier versions
}
}
출처 : phynet gist.
이것은 설정이 백그라운드로 되어 있을 때만 기능했습니다.앱 알림 설정으로 리디렉션되지만 설정이 백그라운드에서 실행되고 있지 않은 경우에는 일반적으로 알림 설정으로 리디렉션됩니다.
스위프트 3:
guard let url = URL(string: UIApplicationOpenSettingsURLString) else {return}
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
// Fallback on earlier versions
UIApplication.shared.openURL(url)
}
UIApplicationOpenSettingsURLString
이전에 모든 권한을 허용한 경우에만 작동합니다.예를 들어 위치, 사진, 연락처, 푸시 알림 액세스입니다.따라서 사용자로부터 해당 권한이 없는 경우:
iOS 10 이상일 경우
[설정(Settings)]가 열렸지만 크래시됩니다.이유는 앱 설정에 아무것도 없기 때문입니다.
아래 코드는 iOS Setting(iOS 설정) 내에서 응용 프로그램 설정을 엽니다.
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
디바이스를 사용할 수 없기 때문에 iOS < 10에서는 확인할 수 없었습니다.
또한 아래 코드는 GIST에서 찾을 수 있었고 iOS10에서도 정상적으로 동작합니다.하지만 이것이 애플 리뷰 팀에 의해 승인될지는 잘 모르겠습니다.
https://gist.github.com/johnny77221/bcaa5384a242b64bfd0b8a715f48e69f
아래의 코드를 사용해 주세요.
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
~로openURL(_:)
0 이후 되지 않습니다. 10.0 을 사용합니다.open(_:options:completionHandler:)
★★★★★★ 。
if let settingsUrl = URL(string: UIApplication.openSettingsURLString) {
UIApplication.shared.open(settingsUrl, options: [:]) { completed in
if !completed {
print("Failed opening")
}
}
}
iOS 10에서 테스트 완료.일해
NSArray* urlStrings = @[@"prefs:root=WIFI", @"App-Prefs:root=WIFI"];
for(NSString* urlString in urlStrings){
NSURL* url = [NSURL URLWithString:urlString];
if([[UIApplication sharedApplication] canOpenURL:url]){
[[UIApplication sharedApplication] openURL:url];
break;
}
}
해피 코딩 :)
SWIFT 4.0
'openURL'은 iOS 10.0에서 더 이상 사용되지 않습니다. 대신 openURL:options:completionHandler:를 사용하십시오.
UIApplication.shared.open(URL.init(string: UIApplicationOpenSettingsURLString)! , options: [:], completionHandler: nil)
스위프트 4
저는 안전한 방법으로 열린 환경을 선호합니다.
if let settingUrl = URL(string:UIApplicationOpenSettingsURLString) {
UIApplication.shared.open(settingUrl)
}
else {
print("Setting URL invalid")
}
Swift Bluetooth 페이지에서 설정 앱을 열 수 있습니다.
func openSettingsApp(){
if let settings = NSURL(string: "prefs:root=Bluetooth") {
UIApplication.sharedApplication().openURL(settings)
}
}
다시 말하지만 앱의 설정이 열리지 않습니다.이것은 블루투스와 깊은 연계가 되어 있기 때문에 블루투스로 설정 앱을 열 수 있습니다.
승인된 답변에 추가하려면: (Apple 개발자 설명서에서) "이 문자열에서 작성된 URL을 열 때(openSettings)"URLtring)을 통해 설정 앱이 실행되고 앱의 사용자 지정 설정이 있는 경우 표시됩니다.따라서 앱에 대한 설정을 열려면 사용자 고유의 설정을 만드십시오.묶다
이것을 당신의 클래스에 추가하세요.
public class func showSettingsAlert(title:String,message:String,onVC viewController:UIViewController,onCancel:(()->())?){
YourClass.show2ButtonsAlert(onVC: viewController, title: title, message: message, button1Title: "Settings", button2Title: "Cancel", onButton1Click: {
if let settingsURL = NSURL(string: UIApplicationOpenSettingsURLString){
UIApplication.sharedApplication().openURL(settingsURL)
}
}, onButton2Click: {
onCancel?()
})
}
public class func show2ButtonsAlert(onVC viewController:UIViewController,title:String,message:String,button1Title:String,button2Title:String,onButton1Click:(()->())?,onButton2Click:(()->())?){
dispatch_async(dispatch_get_main_queue()) {
let alert : UIAlertController = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: button1Title, style:.Default, handler: { (action:UIAlertAction) in
onButton1Click?()
}))
alert.addAction(UIAlertAction(title: button2Title, style:.Default, handler: { (action:UIAlertAction) in
onButton2Click?()
}))
viewController.presentViewController(alert, animated: true, completion: nil)
}
}
이렇게 부르면
YourClass.showSettingsAlert("App would like to access camera", message: "App would like to access camera desc", onVC: fromViewController, onCancel: {
print("canceled")
})
언급URL : https://stackoverflow.com/questions/5655674/opening-the-settings-app-from-another-app
'programing' 카테고리의 다른 글
텍스트 필드에 "••••••"를 사용하여 비밀번호 숨기기 (0) | 2023.04.22 |
---|---|
MVVM 패턴을 사용하여 진행 표시줄을 구현하는 방법 (0) | 2023.04.22 |
어레이와 리스트: 언제 사용할까요? (0) | 2023.04.22 |
액티브한 화면 치수를 취득하려면 어떻게 해야 합니까? (0) | 2023.04.22 |
HTML 페이지 제목을 UI WebView에 표시하는 방법 (0) | 2023.04.22 |