Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Android - WebContent null
Forum - Android - WebContent null

Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 16:45
Venerdì, 05/05/2023
Salve ragazzi.
Ho un problema durante lo sviluppo di un'applicazione su android.

Al click di un pulsante, dove recuperare il contenuto di una pagina web.
nel mio caso, mi serve per sapere se è andata a buon fine un'operazione

al click del pulsante

Codice sorgente - presumibilmente C#

  1. Button bt = findViewById(R.id.button);
  2.  
  3.         bt.setOnClickListener(v ->
  4.         {
  5.             String webContent = null;
  6.             try {
  7.                 URL url = new URL("http://*************/complete.php?ord=" + ordine);
  8.                 HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  9.                 conn.setRequestMethod("GET");
  10.                 BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
  11.                 StringBuilder sb = new StringBuilder();
  12.                 String line;
  13.                 while ((line = reader.readLine()) != null) {
  14.                     sb.append(line).append("\n");
  15.                 }
  16.                 reader.close();
  17.                 webContent = sb.toString();
  18.             } catch (Exception e) {
  19.                 e.printStackTrace();
  20.             }
  21.  
  22.  
  23.  
  24.             //----
  25.             AlertDialog.Builder builder = new AlertDialog.Builder(this);
  26.             builder.setTitle("Risultato");
  27.             builder.setMessage("Ordine segnato come completo. Puoi chiudere L'applicazione ( " + webContent + ")");
  28.             builder.show();



il risultato è "null"
come se l'oggetto non è stato creato o non saprei cosa...
Avete qualche idea?

Più che altro penso che il problema magari sia l'url non saprei

URL url = new URL("http://*************/complete.php?ord=" + ordine);

c'è semplicemente l'ip del server e la pagina web.
la variabile ordine, la passo come extra dall'activity precedente



Codice sorgente - presumibilmente Android

  1. Intent classe = new Intent(this,Conferma.class);
  2. classe.putExtra("ordine",result.getContents());



Il contenuto lo legge perché all'override del void Create posiziono il contenuto su una TextView

Ultima modifica effettuata da Thejuster il 05/05/2023 alle 16:52


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 19:12
Venerdì, 05/05/2023
Piccolo aggiornamento.

Per cercare di scoprire cosa cavolo succede dietro le quinte,
Ho creato una nuova activity e aggiunto un WebView per vedere un output.

ecco cosa accade



Thejuster ha allegato un file: Screenshot-2023-05-05-19-10-18-61.jpg (89940 bytes)
Clicca qui per guardare l'immagine


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 8:53
Sabato, 06/05/2023
Risolto.

Come sempre dimentico che android diversamente dal C# o qualsiasi altro linguaggio
necessita di un permesso anche solo per aprirsi.
Questa cosa è una gran rottura.

Per chi in futuro riscontra lo stello problema:

Bisogna andare nel file AndroidManifest

sotto le prime dichiarazioni xml

esempio

Codice sorgente - presumibilmente Plain Text

  1. <application
  2.         android:allowBackup="true"
  3.         android:dataExtractionRules="@xml/data_extraction_rules"
  4.         android:fullBackupContent="@xml/backup_rules"
  5.         android:icon="@mipmap/ic_launcher"
  6.         android:label="@string/app_name"
  7.         android:supportsRtl="true"



aggiungere sotto

Codice sorgente - presumibilmente Plain Text

  1. android:usesCleartextTraffic="true"



Questo penso, perché non è consentito di default alle app di android di navigare su indirizzi IP non mascherati.

tipo se si va su www.google.it non ci sarebbero problemi, nel mio caso che vado su un indirizzo chiaramente in IP
può esserci qualche problema di sicurezza.
In pratica la mia app scannerizza un codice a barre, ne ricava il codice dell'ordine e lo va ad inserire in un database
in modo che i clienti possono visualizzare lo stato delle consegne o se è in fase di lavorazione.
Mistero risolto.

Ultima modifica effettuata da Thejuster il 06/05/2023 alle 9:46


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote