点击webview获取对象类型 - Android

时间:2014-01-20 09:37:30

标签: android webview

我正在开发一个webview,我必须在单击此对象时定义对象的类型。例如,当我点击链接时,webview了解它是一个链接,我可以获得链接(返回对象);当我点击图片时,webview了解它是一个图像并返回图像对象。我想让对象类型做更多的活动。例如,当我长时间点击图片时,对我有一些操作:下载,设置为背景,...当我长按一下链接时,有一些选项如:在新标签页中打开,添加到书签, ...有谁知道解决方案。非常感谢你:))

1 个答案:

答案 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>