2016-06-22 10 views
13

In uno scenario particolare, sto portando l'utente alla pagina delle impostazioni del passcode. al di sotto è il codice utilizzato per questo -iOS 10 beta: lo schema URL non funziona ma funziona in iOS 9

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

Dopo l'aggiornamento a iOS versione 10 beta, io non sono più portato alla pagina delle impostazioni codice invece termina l'applicazione.

Qualcuno può aiutarmi per favore con questo. Grazie in anticipo .

+2

pagine delle preferenze di apertura a parte le preferenze del proprio app non è stato consentito per un certo tempo. Sembra che in iOS 10 Apple abbia ulteriormente rafforzato questa restrizione. – Paulw11

+0

Grazie, @ Paulw11. Come i miei clienti stanno aspettando su questo, sarebbe grato se potessi fornirmi ulteriori dettagli su questo, in modo da poter spiegare i miei clienti allo stesso modo. – vijeesh

+1

Gli URL delle preferenze sono stati rimossi in iOS 5.1. Sono sorpreso che il tuo codice abbia funzionato a tutti - http://stackoverflow.com/questions/8246070/ios-launching-settings-restrictions-url-scheme – Paulw11

risposta

11

Non ancora.

Circa 1 mese prima che venisse rilasciato iOS 10 beta 1, la mia app ha ricevuto un rifiuto a causa dell'apertura di un URL Preference.app. Il team di revisione app mi ha dato una telefonata per spiegarlo: al momento non è consentito il motivo: utilizzo di API private. È consentita solo l'apertura della pagina delle impostazioni dell'app corrente (UIApplicationOpenSettingsURLString).

Quindi ora ha davvero senso il motivo per cui mi hanno rifiutato. Perché nessuno poteva aprire impostazione del sistema dal momento che iOS 10.

risposta Aggiornato al 8 dicembre 2016:

Utilizzando API privato (non inviare l'applicazione con questi codice per l'App Store):

@interface PrivateApi_LSApplicationWorkspace 
- (BOOL)openSensitiveURL:(id)arg1 withOptions:(id)arg2; 
@end 

PrivateApi_LSApplicationWorkspace* _workspace; 

_workspace = [NSClassFromString(@"LSApplicationWorkspace") new]; 

BOOL result = (BOOL)[_workspace openSensitiveURL:[NSURL URLWithString:@"Prefs:root=YOURSETTINGURLHERE"] withOptions:nil]; 
+0

Puoi inviarmi il link del processo di revisione di Apple se questa regola è menzionata perché quando ho esaminato la loro documentazione sul processo di revisione non ho potuto trovare questo. – vijeesh

+6

Spiacente, non ci sono link a riguardo. Il team di revisione di App Store mi ha dato una telefonata per spiegarlo, e come hai fatto, ho chiesto dove si trova la regola, nella linea guida della recensione o da qualche altra parte? Hanno appena detto, è la regola, non è scritto da nessuna parte ed è per questo che ti do una telefonata per dirti che è una nuova regola, e la regola non sarà pubblica, almeno per il momento non è pubblica. A proposito, è stata davvero una chiamata terribile, che sembra così "Sono tuo padre è la regola perché dico che è una regola". – Croath

+0

Ah, buon vecchio Apple. Far affliggere i loro clienti dal 2007. – phreakhead

-2

Su iOS 10 è possibile utilizzare openURL:options:completionHandler:;

Inoltre è possibile vedere questo articolo (openURL Deprecated in iOS 10) per ulteriori dettagli.

+0

grazie per il collegamento ma non sembra risolvere nulla – luky

4

Lo schema di preferenze è cambiato su iOS 10, è possibile utilizzare questo:

if #available(iOS 10.0, *) { 
    UIApplication.shared.open(URL.init(string:"App-Prefs:root= PASSCODE")!, options: [UIApplicationOpenURLOptionUniversalLinksOnly:true], completionHandler:{(success: Bool?) -> Void in}}) 
} else { 
    // Fallback on earlier versions 
    UIApplication.shared.openURL(URL.init(string:"Prefs:root= PASSCODE")!) 
} 
Problemi correlati