2013-03-04 5 views
13

Ho una webapp che sto usando con PhoneGap/Cordova per l'installazione su iOS e Android. A un certo punto nell'app ho un iframe che carica il contenuto da un secondo server.Come posso aprire un iframe in un'app di fonegap/cordova in esecuzione su IOS?

Quando eseguo l'app da un browser, tutto funziona come previsto: l'iframe si apre nella stessa pagina e carica il contenuto dal secondo sito.

Quando eseguo la webapp su un simulatore iPhone utilizzando Cordova, quando l'iframe si apre, iOS passa a Safari e posiziona la mia app in background.

Iniziative volte:

  1. ho aggiunto il secondo sito per la matrice "ExternalHosts" nel file Cordova.plist.
  2. Ho creato un file config.xml accanto al file index.html nella directory/www, in base alla documentazione di PhoneGap/Cordova (https://build.phonegap.com/docs/config-xml).
  3. Ho aggiunto un tag < preferenza name = "stay-in-webview" value = "true"/> al figlio del tag principale < del widget >.

Il mio sospetto è che non sta leggendo/utilizzando il file config.xml, ma potrebbe esserci qualcos'altro ... Qualcuno ha qualche idea su cosa potrei fare male?

risposta

19

Dopo aver aggiunto un InAppBrowser al posto dell'iframe che stavo usando prima, alla fine ho provato di nuovo un iframe, e l'iframe ora funziona senza saltando sul browser del telefono, come faceva prima, e l'iframe funziona in modo coerente sia in iOS che in Android.

2 cose sono cambiate dal momento in cui iframe sono stati rotti a quando hanno iniziato a lavorare:

  1. ho aggiornato a Cordova 2.5
  2. ho iniziato a creare in modo dinamico/aggiungendo l'iframe alla pagina utilizzando jQuery piuttosto che solo unhiding un iframe già esistente, come stavo facendo inizialmente:

    $ (' < iframe src = "whatever.com" height = "100%" width = "100%" frameborder = "0" > </iframe > ') .appendTo (' body '); .

Non mi preoccupai verificare se fosse # 1 o 2 # che risolto il problema iframe (sto indovinando che è # 1), ma ho pensato di post che è possibile ottenere iframe lavorare con un'app PhoneGap/Cordova, nel caso in cui qualcun altro incontri lo stesso problema.

5

Perché non usi InAppBrowser? http://docs.phonegap.com/en/2.3.0/cordova_inappbrowser_inappbrowser.md.html. Sarà complicato utilizzare iframe che funziona sia in Android che in iOS

+0

Grazie per la risposta. Sembra strano che un iframe non sia supportato ...In ogni caso, InAppBrowser sembra avere lo stesso problema: si limita a sfocare la mia app e ad aprire Safari. Sembra proprio che Cordova stia semplicemente ignorando il file config.xml ... La documentazione sembra indicare che il solo collocamento del file config.xml nella posizione corretta farà sì che venga caricato automaticamente, ma in realtà sembra non essere il caso ... – Troy

+0

In realtà, sembra che InAppBrowser potrebbe non essere disponibile in Cordova 2.2. Proverò ad aggiornare e ri-testare. – Troy

+1

Se non si desidera effettuare l'aggiornamento, è possibile utilizzare il plug-in browser figlio per PhoneGap 2.2: https://github.com/phonegap/phonegap-plugins/tree/master/iOS/ChildBrowser – Whizkid747

0

La stessa cosa ora con iOS 8 non funziona. Ottengo l'iFrame senza scrolling e overflow su altri div. Ho provato vari stili di CSS ma nessuna soluzione. Funziona bene su app Android. Questo sta usando l'ultima versione di PhoneGap.

Problemi correlati