这看起来很简单,但实际上变得几乎不可能。我的 WebView 中正在显示文本,我需要获取它。
我尝试过各种各样的事情。
webview.loadUrl("javascript:window.HTMLOUT.showHTML(document.innerText);");
webview.loadUrl("javascript:window.HTMLOUT.showHTML(document.documentElement.innerText);");
webview.loadUrl("javascript:window.HTMLOUT.showHTML(document.getElementsByTagName('auth')[0].innerHTML);");
webview.loadUrl("javascript:window.HTMLOUT.showHTML(document.getElementsByTagName('body')[0].innerText);");
webview.loadUrl("javascript:window.HTMLOUT.showHTML(document.getElementsByTagName('html')[0].innerText);");
还有很多其他的东西。我对这两个调用未定义。
它总是尝试返回一些随机 xml。
class MyJavaScriptInterface
{
@SuppressWarnings("unused")
public void showHTML(String html)
{
Log.d("SHOWING", html);
new AlertDialog.Builder(myApp)
.setTitle("HTML")
.setMessage(html)
.setPositiveButton(android.R.string.ok, null)
.setCancelable(false)
.create()
.show();
}
public void showHTML(Object html)
{
Log.d("Some random object", "Some random object");
}
public void showHTML(XML html)
{
Log.d("Some random XML", "Some random XML");
}
}
这就是它的样子。
有什么帮助吗?
最佳答案
以下是从网页向 Android 设备发送文本的示例。它会在 Android 上创建一条“toast”弹出消息。
将其添加到您的 WebView :
myWebView.addJavascriptInterface(new JavaScriptInterface(this), "Android");
将此类添加到您的项目中:
public class JavaScriptInterface {
Context mContext;
JavaScriptInterface(Context c) {
mContext = c;
}
public void showToast(String toast) {
Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
}
}
使用 javascript 将信息从您的网站发送到您的 Android,如下所示:
<script type="text/javascript">
Android.showToast("This is a message");
</script>
关于java - 如何从 WebView 中获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13576153/