2016-04-18 10 views

答えて

1

ダイアログを表示するWebAppInterfaceを作成できます。あなたのWebViewの

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

これで

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(); 
}} 

このインターフェイスを設定するにはJavaScriptを有効にWebViewの中で実行するためのAndroidと呼ばれるインターフェースを作成します。この時点で、WebアプリケーションはWebAppInterfaceクラスにアクセスできます。例えば、ここでユーザーがボタンをクリックすると新しいインターフェースを使用してトーストメッセージを作成し、いくつかのHTMLとJavaScriptだ:

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

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

JavaScriptからAndroidのインターフェースを初期化する必要はありません。 WebViewは自動的にあなたのWebページを利用可能にします。したがって、ボタンをクリックすると、showAndroidToast()関数はAndroidインターフェースを使用してWebAppInterface.showToast()メソッドを呼び出します。

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

+1

これは私がWebViewの上で表示したいネイティブのダイアログではありません。ウェブページは、多くのコンテンツを含む独自のモーダルポップアップダイアログを開きますが、フォーカスが下にあるウェブページに残ることがあります。 –

関連する問題