java - 如何从 WebView 中获取文本

标签 java javascript android webview

这看起来很简单,但实际上变得几乎不可能。我的 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/

相关文章:

java - 如何每 15 分钟重复一次操作

java - 为什么我的 RecyclerView 不显示我的适配器项目?

java - 匹配器和模式 Android

javascript - 当字符串在双引号中包含单引号时,如何在 Javascript 中将此字符串转换为 JSON 对象

javascript - 隐藏和更改功能不适用于探索

javascript - p5.j​​s:如何访问 for() 循环中的元素以翻转?

android - 在 webview 上显示进度对话框

java - 切换此标记后预期的标签

Java Spring——验证单个对象字段

java - 最佳方法: tree set structure vs thread pool executor