2014-11-18 12 views
6

Ho un'app di Facebook html mobile che ha un controllo per caricare i file (un semplice file di input). Posso caricare bene quando apro l'app in un browser come questa apps.facebook.com/myapp. Ma una volta che passo attraverso l'app nativa di Facebook e carico la mia app nel browser interno del nuovo FB, il controllo del caricamento non funziona. È lì sulla pagina ma non fa nulla.Controllo caricamento file non funzionante in Facebook Browser in-app

  • È un comportamento previsto?
  • Se sì, come faccio a girarlo?
  • Posso forzare un'app per aprirsi in un browser esterno come Chrome?

Grazie.

risposta

0

Stesso problema.

L'unica soluzione che ho trovato per ora è di suggerire ai visitatori con un messaggio di avviso di aprire il sito Web in Safari (per iPhone ovviamente), con il pulsante di azione in alto a destra del browser web di Facebook.

Si tratta di un'user-agent specifico:

Mozilla/5.0 (iPhone, iPhone OS CPU 8_1_1 come Mac OS X) AppleWebKit/600.1.4 (KHTML, come Gecko) Mobile/12B435 [ FBAN/FBIOS; FBAV/18.0.0.14.11; FBBV/5262967; FBDV/iPhone5,2; FBMD/iPhone; FBSN/iPhone SO; FBSV/8.1.1; FBSS/2; FBCR/T-Mobile; FBID/telefono; FBLC/it_US; FBOP/5]

7

Abbiamo risolto questo problema aggiungendo un attributo "Multiple" sull'elemento di input. Sembra un bug nel browser di Facebook.

Questo lo risolve per iOS, ma alcuni rapporti non sono ancora funzionanti su Android. Aggiunge anche un controllo per vedere se hanno caricato più di un file (poiché ciò potrebbe non essere previsto, ma è consentito dall'elemento). Spero possa essere d'aiuto.

if (navigator.userAgent.match(/FB/)) { 
    $('#myinput').attr('multiple',true); 
    $('#myinput').change(function(){ 
     if ($('#myinput')[0].files.length > 1) { 
      //user trying to upload more than 1 
      $('#myinput').value = ''; 
      alert("Sorry, only 1 file is allowed"); 
     } 
    }); 
} 
Problemi correlati