Autore Topic: utilizzo WebView e metodo addJavascriptInterface()  (Letto 639 volte)

Offline Dav_android

  • Utente junior
  • **
  • Post: 78
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Tab2 10.1
  • Sistema operativo:
    Windows 8
utilizzo WebView e metodo addJavascriptInterface()
« il: 19 Dicembre 2012, 15:50:56 CET »
0
Caio, ho iniziato a sviluppare un'applicazione web, volevo sapere innanzi tutto se la trovate opportuna rispetto ad un'applicazione nativa visto che deve interagire con un database on line e quindi necessariamente con del php che effettua select e insert nel database, o conviene sempre fare un applicazione in java?
Ho fatto diverse prove seguendo la guida ufficiale Building Web Apps in WebView | Android Developers[/url]
ho abilitato javascript ma non sono riuscito a capire come far funzionare il metodo in oggetto, per sostituire gli alert() javascript con i messaggi del dispositivo android.

il mio file di layout contiene semplicemente la WebView mentre la mia Activity è la seguente:

Codice (Java): [Seleziona]
package com.davide.provawebview;

import android.os.Bundle;

import android.view.KeyEvent;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.app.Activity;

public class Main extends Activity {   
   
        @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        WebView miaWebView = (WebView) findViewById(R.id.vistaweb);
        miaWebView.loadUrl("[url]http://www.miosito/prova.php");
        WebSettings webSettings = miaWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);  
        miaWebView.setWebViewClient(new WebViewClient());
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        WebView miaWebView = (WebView) findViewById(R.id.vistaweb);
        // Check if the key event was the Back button and if there's history
        if ((keyCode == KeyEvent.KEYCODE_BACK) && miaWebView.canGoBack()) {
            miaWebView.goBack();
            return true;
        }
        // If it wasn't the Back key or there's no web page history, bubble up to the default
        // system behavior (probably exit the activity)
        return super.onKeyDown(keyCode, event);
    }
   
}

il codice html è quello suggerito dalla guida ufficiale:
Codice: [Seleziona]
<input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" />

<script type="text/javascript">
    function showAndroidToast(toast) {
        Android.showToast(toast);
    }
</script>

mi aiutereste a capire come fare ad inserire nella mia activity il codice necessario per creare degli allert sul dispositivo android?

Offline Dav_android

  • Utente junior
  • **
  • Post: 78
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Tab2 10.1
  • Sistema operativo:
    Windows 8
Re:utilizzo WebView e metodo addJavascriptInterface()
« Risposta #1 il: 19 Dicembre 2012, 17:12:18 CET »
0
Cercando un po' in giro ho visto che inserendo questa riga di codice:

Codice (Java): [Seleziona]
miaWebView.setWebChromeClient(new WebChromeClient());
gli alert() cominciano a funzionare, immagino che il motivo sia il fatto che la webview comincia ad utilizzare come client chrome.
Ma è corretto fari in questo modo e perchè la guida ufficiale prevede una lavorazione più macchinosa?