2016-04-18 10 views

Antwort

1

Sie können ein WebAppInterface erstellen, um Dialoge anzuzeigen.

public class WebAppInterface { 
Context mContext; 

/** Instantiate the interface and set the context */ 
WebAppInterface(Context c) { 
    mContext = c; 
} 

/** Show a toast from the web page */ 
@JavascriptInterface 
public void showToast(String toast) { 
    Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show(); 
}} 

und setzen Sie diese Schnittstelle an Ihrer WebView

WebView webView = (WebView) findViewById(R.id.webview); 
webView.addJavascriptInterface(new WebAppInterface(this), "Android"); 

Dies schafft eine Schnittstelle namens Android für JavaScript in den WebView läuft. Zu diesem Zeitpunkt hat Ihre Webanwendung Zugriff auf die WebAppInterface-Klasse. Zum Beispiel hier einig HTML und JavaScript, die einen Toast Nachricht mit der neuen Schnittstelle erzeugt, wenn der Benutzer auf eine Schaltfläche klickt:

<input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" /> 

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

Es gibt keine Notwendigkeit, die Android-Schnittstelle von JavaScript zu initialisieren. Das WebView stellt es automatisch für Ihre Webseite zur Verfügung. Auf Knopfdruck verwendet die Funktion showAndroidToast() die Android-Schnittstelle, um die WebAppInterface.showToast() -Methode aufzurufen.

Fount: http://developer.android.com/intl/es/guide/webapps/webview.html

+1

Dies ist kein nativer Dialog, dass ich die Webansicht zeigen, die überspielt. Die Webseite öffnet einen eigenen modalen Popup-Dialog mit vielen Inhalten, aber der Fokus bleibt manchmal auf der darunterliegenden Webseite. –

Verwandte Themen