看起来很简单,但几乎变得不可能了。 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>

07-24 09:46
查看更多