在我的Webview中我有很多标签img(ImageView),我想在webview中点击标签img来获取事件,以便在许多图像中显示它的位置。我怎么办?
答案 0 :(得分:0)
首先,您需要启用javascript。像这样,
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
然后用JavaScript代码绑定你的javascript代码,
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添加javascriptInterface方法,它将从任何javascript方法调用你的android方法,
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
之后在你的webview页面中,只需在每个标签img上添加onclick方法,然后从onclick事件中调用javascript方法,
<img src="YOUR IMAGE SOURCE" id="your img positon OR anything" onClick="showAndroidToast(this.id)" />
<script type="text/javascript">
function showAndroidToast(toast) {
Android.showToast(toast);
}
</script>
有关详情,请参阅Android Webview
答案 1 :(得分:0)
使用Javascript Interface
将Javascript代码(从html)绑定到Android代码。
例如:
<强> JavascriptInterface 强>:
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();
}
}
HTML(JS):
<input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" />
<script type="text/javascript">
function showAndroidToast(toast) {
Android.showToast(toast);
}
</script>
将JavaScriptInterface添加到WebView
:
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
This是官方文档中的一个示例。
答案 2 :(得分:0)
据我所知,您需要了解点击网页浏览中的图片的时间。
如果是这样,你可以使用这个: http://developer.android.com/reference/android/webkit/WebView.html#getHitTestResult()
和此:
http://developer.android.com/reference/android/webkit/WebView.HitTestResult.html
在你的点击监听器中使用它,它应该可以工作!