看起来如此简单却变得几乎不可能。我的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");
}
}
这就是它的样子。
任何帮助?
答案 0 :(得分:2)
以下是从您的网页向Android设备发送文字的示例。它在android上创建了一个'toast'弹出消息。
将此添加到您的网页浏览中:
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>