0

例如:在 webview 中加载的网页是

<script>
$(document).ready(
function(){
    $.get(
    '/my.url',
    function(data){
        $('#e').html(data);
    }
    );
}
);
</script>
<div id='e'></div>

如何从 Java 代码中获取 DOM id 'e' 的内容或在“get”回调期间获取内容?

java部分 final WebView browser = (WebView)findViewById(R.id.browser);

我如何利用browser来提取 webview 中的内容?

4

1 回答 1

1

我发现的唯一方法是让 JS 通过 JS 接口将值发送到您的设备。看看这里

然后你有两个选择,要么从 $(document).ready 回调调用接口,要么使用 webView.loadUrl("javascript:XXXX") 调用 JS 函数,该函数将获取 DOM 中的值并传递它到你的界面。

在我的项目中,我需要在加载网页时从网页中获取一些值。我开发了一个 WebAppInfoLoader,它调用一个 JS 函数,该函数返回所询问的变量的值:

mWebView.loadUrl(String.format("javascript:sendValueToDeviceInterface(%s);", jsValue.getId()));

然后,JS函数调用接口通知加载器已经收到值。当加载器收集所有值时,他自己通知调用对象。

谷歌没有想出一个更简单的系统,因为它存在于 iOS 上,这是非常复杂和非常不幸的。

于 2013-06-11T03:36:47.993 回答