我正在开发一个webview,我必须在单击此对象时定义对象的类型。例如,当我点击链接时,webview了解它是一个链接,我可以获得链接(返回对象);当我点击图片时,webview了解它是一个图像并返回图像对象。我想让对象类型做更多的活动。例如,当我长时间点击图片时,对我有一些操作:下载,设置为背景,...当我长按一下链接时,有一些选项如:在新标签页中打开,添加到书签, ...有谁知道解决方案。非常感谢你:))
答案 0 :(得分:0)
我认为你不能直接看到webview听众的“缺点”html / javasctipt。 (WebView参考此处:http://developer.android.com/reference/android/webkit/WebView.html)
但是,如果您正在开发在WebView中运行的Web应用程序,则可以通过使用JavascriptInterface方法获得相同的结果,实现javascript方法以“向上”将对象返回到Android应用程序。
示例接口类:
public class JSUpInterface {
protected Context mContext;
public JSUpInterface(Context c) {
mContext = c;
}
@JavascriptInterface
public void showToast(String message) {
Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();
}
@JavascriptInterface
public void getLink(String link) {
// shows in a toast the clicked link
Toast.makeText(mContext, link, Toast.LENGTH_SHORT).show();
}
}
WebView附加:
jsUi = new JSUpInterface(context);
webview.addJavascriptInterface(jsUi, "jsui");
你的HTML:
<a href="http://www.google.com" id="a1" onClick="jsui.getLink(this.href);">www.google.com</a>