2014-04-01 5 views
8

Devo essere in grado di avviare la mia app iOS dal browser Safari. Così sono andato al mio file .plist in xcode e ho aggiunto un elemento ai miei Schemi URL e inserito nella stringa myappname.Continua a ricevere il messaggio di avviso di "Apri questa pagina in YourAppName?" durante il tentativo di avviare l'app da Safari

Ora, se vado a Safari e digitare myappname:// nella barra degli indirizzi URL e lo presenta, mostra di me una UIAlertView che dice Open this page in "MyAppName"? con opzioni per Cancel e Open.

Se tocchi Open apre correttamente la mia app, tuttavia voglio farlo senza che lo UIAlertView compaia con quel messaggio.

Ho effettuato alcune ricerche rapide online e sembra che le persone continuino a riscontrare problemi ogni volta che esce un nuovo aggiornamento iOS e non riesco a trovare una soluzione o una risposta recenti.

Sono su un iPhone 4s con iOS 7.1, e sto usando xcode 5.1 se questo fa alcuna differenza.

Inoltre, ho utilizzato un app disponibili su App Store chiamato "FrontBack" che fa con successo la stessa cosa, senza il UIAlertView mostrando in Safari quindi questo è sicuramente possibile.

Grazie per l'aiuto.

+0

ciò che è un esempio di schema URL che si desidera utilizzare per aprire l'applicazione? o è irrilevante che tu voglia semplicemente aprire l'app quando mai qualcosa come hi: //this_is_my_app.cool –

+0

Immagino che sia irrilevante XD –

+0

Lo schema URL che ho descritto sopra funziona perfettamente. Voglio solo sbarazzarmi di UIAlertView. – user3344977

risposta

2

Io uso questo metodo nella mia app senza ottenere UIAlertView. Va direttamente all'app.

Ho avuto un problema simile quando ho iniziato a implementarlo. Sospetto che non sia un problema con myappname://, ma probabilmente un problema con il modo in cui hai aggiunto lo schema URL.

Assicurarsi di assegnare il valore personalizzato (myappname) all'oggetto URL Identifier (com.mycompany.myappname). Lo URL identifier dovrebbe essere una stringa e lo URL Schemes dovrebbe essere una matrice con il valore personalizzato come stringa.

La versione XML del vostro .plist dovrebbe essere così:

<key>CFBundleURLTypes</key> 
<array> 
    <dict> 
     <key>CFBundleURLName</key> 
     <string>com.mycompany.myappname</string> 
     <key>CFBundleURLSchemes</key> 
     <array> 
      <string>myappname</string> 
     </array> 
    </dict> 
</array> 
+0

"Sospetto che non sia un problema con myappname: //, ma probabilmente un problema con il modo in cui hai aggiunto lo schema URL." - Probabilmente hai ragione.L'ho chiesto molto tempo fa e penso di non sapere abbastanza di ciò che non sapevo per capire il problema. – user3344977

+1

Quindi è possibile aprire l'app senza che venga visualizzato l'avviso, semplicemente utilizzando uno schema URL personalizzato? La visualizzazione dell'avviso sembra essere il comportamento predefinito in iOS 9+. Mi piacerebbe sapere se il tuo approccio funziona ancora perché l'avviso appare ancora anche quando segui questa risposta. – Crashalot