Ok, eu sei que há muitas perguntas sobre isso, mas são todas de muito tempo atrás.
Assim. Eu sei que isso é possível porque o aplicativo Map faz isso.
No aplicativo de mapa, se eu desativar a localização desse aplicativo, ele me enviará uma mensagem e, se eu pressionar ok, o "Aplicativo de configurações" será aberto. E minha pergunta é: como isso é possível? Como posso abrir o "Aplicativo de configuração" do meu próprio aplicativo?
Basicamente, eu preciso fazer a mesma coisa; se o usuário desativar o local do meu aplicativo, mostrarei uma mensagem dizendo algo que abrirá o "Aplicativo de configuração"
ios
objective-c
iphone
application-settings
appsettings
FelipeDev.-
fonte
fonte
Respostas:
Como mencionado por Karan Dua este é agora possível em iOS8 usando
UIApplicationOpenSettingsURLString
ver Documentação da Apple .Exemplo:
Swift 4.2
No Swift 3:
No Swift 2:
No Objetivo-C
Antes do iOS 8:
Você não pode. Como você disse, isso já foi coberto várias vezes e a solicitação para ativar os serviços de localização é fornecida pela Apple e não pelo próprio aplicativo. É por isso que é capaz de abrir o aplicativo de configurações.
Aqui estão algumas perguntas e artigos relacionados:
é possível abrir o aplicativo Configurações usando o openURL?
Abrir programaticamente o aplicativo de configurações (iPhone)
Como posso abrir o aplicativo Configurações quando o usuário pressiona um botão?
iPhone: Abrindo o painel de preferências de aplicativos no aplicativo
Abra o UIPickerView clicando em uma entrada nas preferências do aplicativo - Como?
Abra o aplicativo Configurações?
iOS: você está fazendo configurações erradas
fonte
De @Yatheeshaless 's resposta :
Você pode abrir o aplicativo de configurações de forma programática no iOS8, mas não nas versões anteriores do iOS.
Rápido:
Swift 4:
Swift 4.2 (BETA):
Objetivo-C:
fonte
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
SIM!! você pode iniciar a tela Configurações do dispositivo, eu testei no iOS 9.2
Etapa 1. precisamos adicionar esquemas de URL
Vá para Configurações do projeto -> Informações -> Tipos de URL -> Adicionar novos esquemas de URL
Etapa 2. Inicie as configurações programaticamente Graças a @davidcann
Também podemos abrir sub-telas como Música, Local etc., apenas usando o nome próprio
Veja esta lista de nomes completa aqui compartilhada por Henri Normak
Atualizar:
De acordo com o comentário, todos querem saber o que acontece após essa alteração no status de envio da minha inscrição?
assim
YES!! I got successful update submission and application is available on store without any complain.
Apenas para confirmar, eu acabei de baixar esta manhã e desabilitei os serviços de Localização e iniciei o aplicativo, que me pediu permissão de localização e, em seguida, meu pop-up de alerta estava lá para me enviar nas configurações -> página de serviços de localização -> Habilitado -> É isso aí!!
! [AVISO: seu aplicativo pode ser rejeitado ... mesmo se for aprovado, pode ser rejeitado em versão futura se você usar esse método ...] 4
fonte
Você pode usar isso no iOS 5.0 e posterior:isso não funciona mais.fonte
prefs:root=General&path=Bluetooth
atualização para iOS 10
A Apple alterou o método para abrir a assíncrona no segmento principal. No entanto, a partir de agora só é possível abrir as configurações do aplicativo nas configurações nativas.
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
atualização para iOS 9
Agora é possível ir diretamente para o menu de sub-configurações. No entanto, um esquema de URL deve ser criado. Isso pode ser feito de duas maneiras:
<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLSchemes</key> <array> <string>prefs</string> </array> </dict> </array>
Então o código:
Rápido
UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=General&path=Keyboard")!)
Objetivo-c
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=Keyboard"]];
fonte
Magic Launcher
na Appstore.No Swift 3 / iOS 10+, isso agora parece
fonte
Swift 3:
fonte
Parece que você pode usar o
prefs:<area>
URL para abrir as configurações e ir para áreas específicas. A Apple pode alterá-las e interromper seu aplicativo. Verifique sempre se é possível abri-las primeiro.Neste artigo, eles listaram alguns deles para o iOS 13.1:
URLs de configurações
iCloud
prefs:root=CASTLE
prefs:root=CASTLE&path=BACKUP
Rádios sem fio
prefs:root=WIFI
prefs:root=Bluetooth
prefs:root=MOBILE_DATA_SETTINGS_ID
Hotspot pessoal
prefs:root=INTERNET_TETHERING
prefs:root=INTERNET_TETHERING&path=Family%20Sharing
prefs:root=INTERNET_TETHERING&path=Wi-Fi%20Password
VPN
prefs:root=General&path=VPN
Notificações
prefs:root=NOTIFICATIONS_ID
prefs:root=NOTIFICATIONS_ID&path=Siri%20Suggestions
Sons
prefs:root=Sounds
prefs:root=Sounds&path=Ringtone
Não perturbe
prefs:root=DO_NOT_DISTURB
prefs:root=DO_NOT_DISTURB&path=Allow%20Calls%20From
Tempo da tela
prefs:root=SCREEN_TIME
prefs:root=SCREEN_TIME&path=DOWNTIME
prefs:root=SCREEN_TIME&path=APP_LIMITS
prefs:root=SCREEN_TIME&path=ALWAYS_ALLOWED
Geral
prefs:root=General
prefs:root=General&path=About
prefs:root=General&path=SOFTWARE_UPDATE_LINK
prefs:root=General&path=CARPLAY
prefs:root=General&path=AUTO_CONTENT_DOWNLOAD
prefs:root=General&path=MULTITASKING
prefs:root=General&path=DATE_AND_TIME
prefs:root=General&path=Keyboard
prefs:root=General&path=Keyboard/KEYBOARDS
prefs:root=General&path=Keyboard/Hardware%20Keyboard
prefs:root=General&path=Keyboard/USER_DICTIONARY
prefs:root=General&path=Keyboard/ReachableKeyboard
prefs:root=General&path=INTERNATIONAL
prefs:root=General&path=DICTIONARY
prefs:root=General&path=ManagedConfigurationList
prefs:root=General&path=Reset
Centro de Controle
prefs:root=ControlCenter
prefs:root=ControlCenter&path=CUSTOMIZE_CONTROLS
Exibição
prefs:root=DISPLAY
prefs:root=DISPLAY&path=AUTOLOCK
prefs:root=DISPLAY&path=TEXT_SIZE
Acessibilidade
prefs:root=ACCESSIBILITY
Papel de parede
prefs:root=Wallpaper
Siri
prefs:root=SIRI
Lápis de maçã
prefs:root=Pencil
ID do rosto
prefs:root=PASSCODE
SOS de emergência
prefs:root=EMERGENCY_SOS
Bateria
prefs:root=BATTERY_USAGE
prefs:root=BATTERY_USAGE&path=BATTERY_HEALTH
Privacidade
prefs:root=Privacy
prefs:root=Privacy&path=LOCATION
prefs:root=Privacy&path=CONTACTS
prefs:root=Privacy&path=CALENDARS
prefs:root=Privacy&path=REMINDERS
prefs:root=Privacy&path=PHOTOS
prefs:root=Privacy&path=MICROPHONE
prefs:root=Privacy&path=SPEECH_RECOGNITION
prefs:root=Privacy&path=CAMERA
prefs:root=Privacy&path=MOTION\
Loja de aplicativos
prefs:root=STORE
prefs:root=STORE&path=App%20Downloads
prefs:root=STORE&path=Video%20Autoplay
Carteira
prefs:root=PASSBOOK
Senhas e contas
prefs:root=ACCOUNTS_AND_PASSWORDS
prefs:root=ACCOUNTS_AND_PASSWORDS&path=FETCH_NEW_DATA
prefs:root=ACCOUNTS_AND_PASSWORDS&path=ADD_ACCOUNT
Enviar
prefs:root=MAIL
prefs:root=MAIL&path=Preview
prefs:root=MAIL&path=Swipe%20Options
prefs:root=MAIL&path=NOTIFICATIONS
prefs:root=MAIL&path=Blocked
prefs:root=MAIL&path=Muted%20Thread%20Action
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
Contatos
prefs:root=CONTACTS
Calendário
prefs:root=CALENDAR
prefs:root=CALENDAR&path=Alternate%20Calendars
prefs:root=CALENDAR&path=Sync
prefs:root=CALENDAR&path=Default%20Alert%20Times
prefs:root=CALENDAR&path=Default%20Calendar
Notas
prefs:root=NOTES
prefs:root=NOTES&path=Default%20Account
prefs:root=NOTES&path=Password
prefs:root=NOTES&path=Sort%20Notes%20By
prefs:root=NOTES&path=New%20Notes%20Start%20With
prefs:root=NOTES&path=Sort%20Checked%20Items
prefs:root=NOTES&path=Lines%20%26%20Grids
prefs:root=NOTES&path=Access%20Notes%20from%20Lock%20Screen
Lembretes
prefs:root=REMINDERS
prefs:root=REMINDERS&path=DEFAULT_LIST
Memorandos de voz
prefs:root=VOICE_MEMOS
telefone
prefs:root=Phone
Mensagens
prefs:root=MESSAGES
Facetime
prefs:root=FACETIME
Mapas
prefs:root=MAPS
prefs:root=MAPS&path=Driving%20%26%20Navigation
prefs:root=MAPS&path=Transit
Bússola
prefs:root=COMPASS
A medida
prefs:root=MEASURE
Safári
prefs:root=SAFARI
prefs:root=SAFARI&path=Content%20Blockers
prefs:root=SAFARI&path=DOWNLOADS
prefs:root=SAFARI&path=Close%20Tabs
prefs:root=SAFARI&path=CLEAR_HISTORY_AND_DATA
prefs:root=SAFARI&path=Page%20Zoom
prefs:root=SAFARI&path=Request%20Desktop%20Website
prefs:root=SAFARI&path=Reader
prefs:root=SAFARI&path=Camera
prefs:root=SAFARI&path=Microphone
prefs:root=SAFARI&path=Location
prefs:root=SAFARI&path=ADVANCED
Notícia
prefs:root=NEWS
Saúde
prefs:root=HEALTH
Atalhos
prefs:root=SHORTCUTS
Música
prefs:root=MUSIC
prefs:root=MUSIC&path=com.apple.Music:CellularData
prefs:root=MUSIC&path=com.apple.Music:OptimizeStorage
prefs:root=MUSIC&path=com.apple.Music:EQ
prefs:root=MUSIC&path=com.apple.Music:VolumeLimit
televisão
prefs:root=TVAPP
Fotos
prefs:root=Photos
Câmera
prefs:root=CAMERA
prefs:root=CAMERA&path=Record%20Video
prefs:root=CAMERA&path=Record%20Slo-mo
Livros
prefs:root=IBOOKS
Centro de jogos
prefs:root=GAMECENTER
fonte
UIApplicationOpenSettingsURLString
isso só funcionará se você tiver permitido anteriormente alguma permissão. Por exemplo, Localização, Foto, Contato, Acesso à notificação por push. Portanto, se você não tiver essa permissão do usuário:Se o iOS 10 ou superior ,
Ele abrirá as configurações, mas depois travará. O motivo, não há nada nas configurações do seu aplicativo.
O código abaixo abrirá as configurações do seu aplicativo dentro da configuração do iOS.
Devido à indisponibilidade do dispositivo, não foi possível verificar isso no iOS <10.
Além disso, eu poderia encontrar o código abaixo de alguma essência e funciona bem no iOS 10 também. Mas não tenho certeza se isso será aprovado pela equipe de revisão da Apple ou não.
https://gist.github.com/johnny77221/bcaa5384a242b64bfd0b8a715f48e69f
fonte
No Swift 3, tudo o que eu precisava é este (aqui, por exemplo, redirecionar para as notificações do meu aplicativo):
Fonte: phynet gist .
Isso funcionou comigo apenas quando as configurações estão em segundo plano. Ele o redirecionará para as configurações de notificação do aplicativo, mas se as configurações não estiverem sendo executadas em segundo plano, apenas o redirecionará para as configurações de notificação em geral.
fonte
Você pode usar o código abaixo para isso.
fonte
SWIFT 4.0
fonte
Swift 4
Eu prefiro abrir a configuração de uma maneira mais segura,
fonte
Swift Você pode usar a seguinte função para abrir o aplicativo Configurações com a página Bluetooth
Novamente, isso não abriria as configurações do aplicativo. Isso abriria o aplicativo de configurações com Bluetooth, pois é um link direto para o bluetooth.
fonte
Testado com iOS 10. Trabalhando
Happy Coding :)
fonte
Para adicionar à resposta aceita: (da documentação do desenvolvedor da apple) "Quando você abre o URL criado a partir dessa string (openSettingsURLString), o sistema inicia o aplicativo Configurações e exibe as configurações personalizadas do aplicativo, se houver alguma." Portanto, se você deseja abrir as configurações do seu aplicativo, crie seu próprio Settings.bundle.
fonte
Adicione isso à sua turma,
Ligue assim,
fonte