2011-01-21 14 views

risposta

15

Le app URL personalizzate sono accettate da Apple. Tuttavia, se più app sul dispositivo hanno registrato lo stesso schema URL, il comportamento non è definito. Da iOS Application Programming Guide, "Se più applicazioni di terze parti si registrano per gestire lo stesso schema URL, non è definito quale delle applicazioni sia selezionata per gestire URL di quel tipo."

+0

ma questo non risponde alla domanda. Che cosa fa??? – eggie5

+4

@ eggie5, Apple afferma chiaramente che il comportamento non è definito. Quindi non puoi dire esattamente cosa accadrà. – taskinoor

+3

@tasknoor Penso che "abbia dichiarato chiaramente" e la mela che dice "indefinito" è piuttosto un ossimoro. Cosa succede? Segnala un errore? Il telefono si spegne, si schianta il mercato azionario ??? – eggie5

10

Risposta breve: la prima app per la registrazione dell'URL a volte si aprirà ma non si aprirà spesso. Altre volte la seconda app da registrare si aprirà ma fallirà spesso. Fondamentalmente fallisce molto ed è davvero "indefinito". Utilizzare http://handleopenurl.com/ per evitare.

lungo Risposta:

ho creato due applicazioni, FirstApp e SecondApp, e registrato lo stesso URL testURL per entrambi.

Ho caricato FirstApp e l'URL ha funzionato come previsto, aprendo l'app.

Ho quindi caricato SecondApp e si è verificato il comportamento indefinito temuto. Attualmente, sotto iOS 7, se due applicazioni hanno lo stesso URL personalizzato registrato si apre una modale chiedendo

Apri questa pagina in "Nome di primo App"?

Quando si tocca l'opzione Apri fallisce e non succede nulla. Se tocchi o inserisci di nuovo il link, verrà avviata la prima app installata con quell'URL, nel nostro caso FirstApp.

Quindi, in effetti, la seconda app da registrare non viene mai aperta e la prima app non riesce ogni due chiamate URL. Nessun comportamento ideale

Ciò che rende ancora peggio è che ho cancellato entrambe le app e poi ho cambiato l'ordine in cui le ho installate ei risultati non sono coerenti. A volte è un'app, quindi ricaricando entrambe le app è l'altra. Il comportamento è davvero "indefinito".

È consigliabile utilizzare http://handleopenurl.com/ per vedere quali URL sono stati registrati e sceglierne uno che non sia in conflitto con altre app. Non puoi "rubare" un altro URL perché non puoi essere sicuro che la tua app si aprirà e non l'altra.