It is currently 22 April 2025, 10:29 Advanced search

Problema iOS

Domande e risposte su come utilizzare Instant Developer Cloud al meglio

Problema iOS

Postby mromini » 6 November 2017, 13:47

Ciao a tutti, questa mattina sono impazzito di fronte ad un'app offline che installata su due iPhone uguali su uno andava e su l'altro no (anche su Android funzionava). Dopo vari test e tentativi mi è venuto in mente qual'era l'unica cosa differente tra i due iPhone: su quello dove l'app non funzionava avevo appena installato instalaucher. Andando nelle impostazioni dell'app dei due smartphone ho notato che sull'iPhone funzionante era acceso il flag Force UIWebView, su quello dove l'app non funzionava questo flag era spento. Una volta acceso e reinstallata l'app, questa ha iniziato a funzionare correttamente.

Analizzando il codice il punto dove l'app va in errore è questo:

Code: Select all
  var body = "inputAgreement=" + options.contractNumber + "&inputUsername=" + options.userName + "&inputPassword=" + options.password;
  var url = "https://sito.web.api/requestaccess.ashx?appPublicToken=token";
  var parametri = {headers : {"Content-Type" : 'application/x-www-form-urlencoded'} , body : body} ;
  //
  var caller; //type:Url
  var result; //typer:Object
  caller = app.fs.url(url);
  var stream = yield caller.post(parametri);
 
   if (stream.error) {
    var error = JSON.parse(stream.error);
    throw (error.message);
  }


Ovviamente stream contiene l'oggetto JSON error e viene correttamente lanciato il throw. Lo stesso codice eseguito su Android o su iPhone con Force UIWebView acceso funziona correttamente.

Qualche idea (a parte quella di utilizzare UIWebView)?
mromini
 
Posts: 464
Joined: 6 November 2012, 9:38

Re: Problema iOS

Postby d.pierangeli » 6 November 2017, 14:28

La UIWebView per fare la richiesta http usa l'XMLHttpRequest javascript mentre la VKWebView usa un plugin nativo per cordova.

Questo perchè Apple ha bloccato la possibilità di usare l'XMLHttpRequest nella VKWebView se il sito remoto non abilita esplicitamente il CORS.

Se il sito con cui vuoi comunicare abilita il CORS puoi forzare la post per usare l'XMLHttpRequest impostando a false il parametro usePlugin tra le opzioni ( caller.post({usePlugin:false}); ).

Altrimenti bisogna verificare quale sia il problema del plugin nativo, in questo caso potresti fare una richiesta di assistenza o malfunzionamento.
User avatar
d.pierangeli
Pro Gamma
Pro Gamma
 
Posts: 8092
Joined: 30 September 2010, 15:35

Re: Problema iOS

Postby mromini » 6 November 2017, 14:38

Ciao Diego, come si fa ad aprire un malfunzionamento per IN.DE Cloud? Nel senso: come faccio ad inviarvi un progetto semplice che replica il problema?

Ciao,
Mario.
mromini
 
Posts: 464
Joined: 6 November 2012, 9:38

Re: Problema iOS

Postby d.pierangeli » 6 November 2017, 15:01

Per quanto riguarda la procedura di supporto Cloud ti consiglio di chiedere informazioni scrivendo a support@instantdevelper.com .
User avatar
d.pierangeli
Pro Gamma
Pro Gamma
 
Posts: 8092
Joined: 30 September 2010, 15:35

Re: Problema iOS

Postby mromini » 6 November 2017, 15:09

Ok, per il discorso apertura malfunzionamento sono in contatto con Giuseppe. Ultima domanda e chiudo l'argomento: se non me la dicevi tu l'esistenza del parametro usePlugin:false in questo post del forum, io ero in grado di trovarlo consultando la documentazione online di IN.DE Cloud? Te lo chiedo non in tono polemico ma solo per capire se sono io che non so fare a trovare le info nell'Help contestuale. Se vado sulla documentazione della post viene fuori questo:

Cattura.PNG
Cattura.PNG (16.23 KiB) Viewed 10557 times


e non viene menzionata l'esistenza di quel parametro. Inoltre immagino di poterlo usare anche per la get, put, delete, etc...

Grazie,
Mario.
mromini
 
Posts: 464
Joined: 6 November 2012, 9:38

Re: Problema iOS

Postby d.pierangeli » 6 November 2017, 15:53

Purtroppo ho visto che quando è stato aggiunto il parametro non è stata aggiornata la documentazione, l'ho segnalato in modo che venga aggiornata.
User avatar
d.pierangeli
Pro Gamma
Pro Gamma
 
Posts: 8092
Joined: 30 September 2010, 15:35

Re: Problema iOS

Postby mromini » 7 November 2017, 7:51

Per la cronaca aperto malfunzionamento 001534-2017.

Ciao,
Mario.
mromini
 
Posts: 464
Joined: 6 November 2012, 9:38

Re: Problema iOS

Postby g.lanzi » 30 March 2018, 13:36

Il fenomeno in questione è causato da una differenza di comportamento delle due view (UIWebView e WKWebView) legato ai contenuto application/x-www-form-urlencoded.

In particolare il problema è dipendente da come vengono passatii parametri. Nel progetto vengono passati solamente come stringa nel body, ma questo formalmente non è corretto per la UIWebView.

È possibile mettere i parametri sia nel body sia in params, così funziona sempre.
Giuseppe Lanzi
Director of Support services
Pro Gamma S.p.A.
User avatar
g.lanzi
Pro Gamma
Pro Gamma
 
Posts: 3503
Joined: 29 September 2010, 10:24
Location: Bologna


Return to Tips & Tricks - Cloud

Who is online

Users browsing this forum: No registered users and 13 guests