2012-09-20 16 views
9

Anche se l'app YouTube non è ora un'app incorporata da Apple, sembra che quando si tocca un link di youtube (in posta, ad esempio), che inizia con http://www.youtube.com, si apre YouTube app subito.Avvia l'app personalizzata con URL per dominio

C'è un modo per questo per le app personalizzate in iOS 6? Conosco solo schemi personalizzati come metodo per avviare un'applicazione tramite URL.

+0

[qui] (http://www.absoluteripple.com/1/post/2012/02/using-custom-url-scheme-to-launch- application.html) è il link che ho provato in precedenza nella mia risposta che è stato cancellato. Mi dispiace, @ChrisF ... ancora imparando le corde. – codeqi

+0

Ho postato una risposta con tutta la profondità di cui penso possa essere necessario. Ho seguito esattamente gli stessi passaggi durante la registrazione della mia app per un URL personalizzato. Puoi vedere se la mia risposta qui sotto risponde alla tua domanda? – SashaZd

+0

@SashaZd La tua risposta approfondita non ha nulla a che fare con la risposta, in quanto non spiega come l'app YouTube fa quello che fa. –

risposta

2

Non sono sicuro di aver capito la tua domanda, ma ecco il mio tentativo di risposta. Chiedi se esiste un modo per aprire app di terze parti da un'altra app. La risposta è possibile se l'applicazione ha implementato uno schema URL personalizzato (vedere here e accedere alla sezione Comunicare con altre app).

Ma sembra anche che tu lo sappia già. In tal caso, sono abbastanza sicuro che non ci sia un altro modo.

0

Immagino che l'app di posta nativa utilizzi lo stesso metodo utilizzato da tutte le app per aprire gli URL (che apriranno un'app o utilizzeranno Mobile Safari per completare la richiesta se nessuna app installata può elaborare l'URL).

Si dovrebbe essere in grado di ottenere lo stesso risultato utilizzando la seguente:

NSString *youtubeURL = @"http://www.youtube.com/watch?v=c2JTu22qxms"; 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:youtubeURL]]; 

Si aprirà l'app YouTube, se è installato o utilizzare Safari per riprodurre il video, se l'app YouTube non è installato.

---- ----- AGGIORNAMENTO

ho deciso di guardare in che modo esattamente l'applicazione YouTube lo fa.

Ho trovato qualcosa di interessante!

Ecco gli URL dell'app YouTube dichiara:

  • fb [appID]

  • vnd.youtube

  • youtube

questo implica che http://www.youtube.com redirect la richiesta a uno degli URL sul li st. Ma quando lo provo, non vedo l'apertura di Mobile Safari e quindi il reindirizzamento.

Continuerò a indagare, è molto intrigante.

+0

La domanda è come imitare questo comportamento per applicazioni personalizzate diverse da YouTube. – Danra

+0

@Danra hai assolutamente ragione! Mi sono confuso dal testo. – Zebs

2

Per registrare un tipo di URL per la vostra applicazione

Includere la chiave CFBundleURLTypes nel file Info.plist della tua app. La chiave CFBundleURLTypes contiene una serie di dizionari, ognuno dei quali definisce uno schema URL supportato dall'app.

Keys and values of the CFBundleURLTypes property

chiamata l'URL (registrato come sopra)

NSURL *myURL = [NSURL URLWithString:@"todolist://www.acme.com?Quarterly%20Report#200806231300"]; 
[[UIApplication sharedApplication] openURL:myURL]; 

chiamate maniglia per personalizzate Schemi URL

Un'applicazione che ha il suo schema URL proprio personalizzato deve essere in grado per gestire gli URL passati ad esso. Tutti gli URL vengono trasferiti al delegato dell'app, al momento dell'avvio o mentre la tua app è in esecuzione o in background. Per gestire gli URL in arrivo, il delegato dovrebbe implementare i seguenti metodi:

Utilizzare i metodi application:willFinishLaunchingWithOptions: e application:didFinishLaunchingWithOptions: per recuperare le informazioni sull'URL e decidere se si desidera aprirlo. Se uno dei due metodi restituisce NO, il codice di gestione dell'URL dell'app non viene richiamato. In iOS 4.2 e versioni successive, utilizzare il metodo application:openURL:sourceApplication:annotation: per aprire il file. In iOS 4.1 e versioni precedenti, utilizzare il metodo application:handleOpenURL: per aprire il file. Se l'app non è in esecuzione quando arriva una richiesta di URL, viene avviata e spostata in primo piano in modo che possa aprire l'URL. L'implementazione del tuo metodo application:willFinishLaunchingWithOptions: o application:didFinishLaunchingWithOptions: dovrebbe recuperare l'URL dal relativo dizionario delle opzioni e determinare se l'app può aprirlo. Se possibile, restituire SÌ e lasciare che il metodo application:openURL:sourceApplication:annotation: (o application:handleOpenURL:) gestisca l'apertura effettiva dell'URL. (Se si implementano entrambi i metodi, entrambi devono restituire SI prima che l'URL possa essere aperto.)

Se l'app è in esecuzione ma è in background o sospesa quando arriva una richiesta URL, viene spostata in primo piano per aprire il URL. Poco dopo, il sistema chiama il numero application:openURL:sourceApplication:annotation: del delegato per controllare l'URL e aprirlo. Se il tuo delegato non implementa questo metodo (o la versione corrente del sistema è iOS 4.1 o precedente), il sistema chiama invece il metodo application:handleOpenURL: del tuo delegato.

Nota

Se due o più applicazioni hanno registrato lo stesso URL personalizzato, non c'è guarentee di quale applicazione si aprirà iOS se l'URL personalizzato viene chiamato.

Ulteriori letture

iOS App Programming Guide :: Advanced Tips and Trics

+0

Grazie, ho menzionato nella domanda che conosco schemi di URL personalizzati, e sto cercando un modo per fare a meno di loro, lo stesso che fa YouTube. – Danra

+1

Youtube utilizza schemi di URL personalizzati. Cosa ti fa pensare che non lo fa? Il www.youtube.com/watch? è lo schema URL personalizzato assegnato a YouTube – SashaZd

+0

Ciò che ti fa pensare "www.youtube.com/watch?" è uno schema URL? – Bogdacutu

Problemi correlati