0

Webviewでは、ローカルのindex.htmlファイルを読み込み、javaScriptを使用してHTMLコンテンツをリモートからWebviewに追加しています。 Webviewに含まれている要素をユーザーがクリックすると、ツールチップを表示する、アラートボックスを表示するなどのタスクを実行したいと思う。 P.Sそれはかなりストレートな解決策を持っているように聞こえる。しかし、私はそうすることができます! ありがとう!Android - Webview ElementのonClickイベントが発生していませんか?

答えて

0

JAVA負荷URL

WebView myWebView = (WebView) findViewById(R.id.webview); 
myWebView.loadUrl("http://www.example.com"); 

追加INTERNET権限でアプリケーション

<?xml version="1.0" encoding="utf-8"?> 
<WebView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/webview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
/> 

へのWebViewを追加

<manifest ... > 
<uses-permission android:name="android.permission.INTERNET" /> 
... 

あなたはaddJavascriptInterfaceであなたのWebViewで実行されるJavaScript()にこのクラスをバインドすることができ

WebView myWebView = (WebView) findViewById(R.id.webview); 
WebSettings webSettings = myWebView.getSettings(); 
webSettings.setJavaScriptEnabled(true); 

メイクインタフェース

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

のWebViewでjavascriptを有効にして、インタフェースAndroidの名前を付けます。例えば:あなたのHTMLで

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

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

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

希望これはあなたの

EXをshouldOverrideUrlLoading

ソースhttps://developer.android.com/guide/webapps/webview.html#AddingWebView

+0

ツールチップとアラートがないAndoridのネイティブでHTMLに示されているように私はインターフェイスを必要としません。 – Tulsi

関連する問題