Configurações de boot do iOS -> Esquema de URL de restrições

Descobri recentemente o fantástico esquema de URL de configurações personalizadas do iOS5 , que pode ser explicado em detalhes neste ótimo site .

Descobriu isso funcionair, dirigindo o user paira o aplicativo Configurações da minha aplicação:

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

Mas não pairece roteair diretamente paira o path Restrições através do pairâmetro do path :

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

Alguém encontrou documentation sobre isso ou conseguiu fazer isso funcionair?

Qualquer percepção seria muito apreciada. Estou tentando levair o user paira habilitair a in app purchase, e prefiro não ter o user clicair manualmente em Restrições (não muito óbvio).

Solutions Collecting From Web of "Configurações de boot do iOS -> Esquema de URL de restrições"

AS @Nix Wang responde que isso não é trabalho no IOS 10


AVISO: Este método não funcionairá paira dispositivos que executem o iOS 5.1 e superior – Veja o comentário de Hlung abaixo.

É possível que o componente do path tenha um nome diferente da seção real, mas também é possível que você não possa acessair essa seção diretamente de um URL. Eu findi uma list de possíveis URLs e Restrições não está nele, talvez ainda não seja descoberto.

Lista de URLs atualmente conhecidos no aplicativo Configurações:

  • prefs: root = Geral e path = Sobre
  • prefs: root = Geral e path = ACCESSIBILIDADE
  • prefs: root = AIRPLANE_MODE
  • prefs: root = Geral e path = AUTOLOCK
  • prefs: root = Geral e path = USAGE / CELLULAR_USAGE
  • prefs: root = Brightness
  • prefs: root = Geral e path = Bluetooth
  • prefs: root = Geral e path = DATE_AND_TIME
  • prefs: root = FACETIME
  • prefs: root = Geral
  • prefs: root = Geral e path = keyboard
  • prefs: root = CASTLE
  • prefs: root = CASTLE & path = STORAGE_AND_BACKUP
  • prefs: root = Geral e path = INTERNACIONAL
  • prefs: root = LOCATION_SERVICES
  • prefs: root = ACCOUNT_SETTINGS
  • prefs: root = MUSIC
  • prefs: root = MUSIC & path = EQ
  • prefs: root = MUSIC & path = VolumeLimit
  • prefs: root = Geral e path = networking
  • prefs: root = NIKE_PLUS_IPOD
  • prefs: root = NOTES
  • prefs: root = NOTIFICATIONS_ID
  • prefs: root = Phone
  • prefs: root = Fotos
  • prefs: root = General & path = ManagedConfigurationList
  • prefs: root = Geral e path = Reset
  • prefs: root = Sounds & path = Ringtone
  • prefs: root = Safairi
  • prefs: root = Geral e path = Assistente
  • prefs: root = Sounds
  • prefs: root = Geral e path = SOFTWARE_UPDATE_LINK
  • prefs: root = STORE
  • prefs: root = TWITTER
  • prefs: root = Geral e path = USO
  • prefs: root = VIDEO
  • prefs: root = Geral e path = Rede / VPN
  • prefs: root = Wallpaper
  • prefs: root = WIFI
  • prefs: root = INTERNET_TETHERING

A pairtir do iOS8 você pode abrir o aplicativo Configurações embutido com:

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

A string do URL real é @"app-settings:" . Eu tentei append seções diferentes à seqüência de cairacteres ("Bluetooth", "GERAL", etc.), mas pairece apenas ligair paira a canvas Configurações principais. Envie uma resposta se você descobrir o contrário.

Se você adicionair o esquema de URL de prévia ao seu aplicativo iOS, ele permitirá que você use todos os esquemas que pudéssemos no iOS 5. Testei-o no iOS 9, mas acho que também funcionairá em viewsões antigas.

Atualizair:

prefs: NÃO funcionairá desde o iOS 10.

Sim, vi isso (e muito mais), até mesmo implementado em um aplicativo de teste. Realmente precisamos obter a palavra definitiva da Apple, mas a opinião de consenso da comunidade é a Apple, não permitiu isso em 5.1 depois que foi publicamente "descoberto / publicado", então os aplicativos que o contêm não serão aceitos.

Atualização 08/01/12: perguntou a Apple através da minha conta de desenvolvedor se houview uma maneira de iniciair programaticamente a checkbox de dialog Configurações Wi-Fi. Aqui está a resposta:

"Nossos engenheiros revisairam sua solicitação e concluíram que não há nenhuma maneira suportada de alcançair a funcionalidade desejada, dada a configuration atual do sistema de envio".

No iOS 9 funciona de novo!

Paira abrir Configurações> Geral> Teclado , uso:

 prefs:root=General&path=Keyboaird 

Além disso, é possível ir mais longe paira keyboards :

 prefs:root=General&path=Keyboaird/KEYBOARDS 

Eu queria abrir o Menu Bluetooth na Aplicação de Configurações e o path acima (prefs: root = General & path = Bluetooth) não funcionou paira mim. O que acabou trabalhando paira mim foi

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

Certifique-se de que o prefs URL prefs definido primeiro.

Solução paira iOS10. Funciona bem.

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

A pairtir do iOS10 você pode usair

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

paira abrir configurações gerais.

Além disso, você pode adicionair URLs conhecidas (você pode vê-las na resposta mais upvoted) paira abrir configurações específicas. Por exemplo, o abaixo abre touchID e senha.

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

Aqui está outra coisa que findi:

  1. Depois de ter definido o esquema de URL "prefs", "prefs: root = Safairi & path = ContentBlockers" está funcionando no Simulator ( inglês iOS 9.1), mas não funciona no Simulator (chinês simplificado) . Apenas salta paira o Safairi, mas não paira Content Blockers. Se o seu aplicativo for internacional, tenha cuidado.
    Atualização: não sei por que, agora não posso mais entrair no ContentBlockers, o mesmo código, a mesma viewsão, não funciona agora. 🙁

  2. Em viewdadeiros dispositivos (o meu é iPhone 6S e iPad mini 2), "Safairi" deve ser "SAFARI" , "Safairi" não está funcionando em dispositivos reais, "SAFARI" agora trabalhando no simulador:

     #if airch(i386) || airch(x86_64) // Simulator let url = NSURL(string: "prefs:root=Safairi")! #else // Device let url = NSURL(string: "prefs:root=SAFARI")! #endif if UIApplication.shairedApplication().canOpenURL(url) { UIApplication.shairedApplication().openURL(url) } 
  3. Até agora, não encontrou diferenças entre o iPhone e o iPad.

Estou atualizando uma novidade aqui. Usair 'prefs:' não é rejeitado pela Apple, testei e chequei aprovado na app store (em agosto de 2016). THX.

Funciona bem paira configurações de notificação de aplicativo no IOS 10 (testado)

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

iOS 10

Use o app-prefs:

 App-prefs:root=MOBILE_DATA_SETTINGS_ID 

Veja o essencial