有没有办法在 Android 应用程序的 web 视图中获取 HTML?

发布于 2024-10-09 09:09:27 字数 356 浏览 2 评论 0原文

有没有办法在 Android 应用程序的 web 视图中获取 HTML?我更喜欢通过简单的资源下载来获取 HTML,特别是如果我可以获取由 JavaScript 生成的 HTML。

例如,如果我想要我的 Android 应用程序(包括 Gmail 等 Web 应用程序)可以访问的随机 HTML 文档中的所有 URL 列表,我该怎么做?

android文档警告关于让JavaScript访问应用程序,但我想也许一个解决方案是,如果可能的话,将一些JavaScript注入到网页中,然后以一种希望安全的方式与我的应用程序进行通信(通过消息传递或其他方式)通过我控制 javascript 的网站上的 iframe 或类似的东西)。

有人有什么想法吗?

Is there a way to get the HTML in a webview in an Android app? I would prefer this to getting the HTML via a simple resource download, especially if I can get HTML generated by JavaScript.

For example if I wanted a list of all URLs in a random HTML document accessible to my android application, including web apps such as gmail, how would I go about it?

The android documentation warns about letting JavaScript access the application, but I was thinking maybe a solution would be, if at all possible, to inject some JavaScript into the webpage which then communicates with my application in a hopefully safe way (via message passing or something through an iframe on a site that I control the javascript on or something similar).

Any one have any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

贱人配狗天长地久 2024-10-16 09:09:27

有没有办法在 Android 应用程序的 web 视图中获取 HTML?

不容易。 javascript: URL 可以工作,并且 addJavascriptInterface() 允许您设置 Javascript 可以调用的回调。您可以创建由 javascript: URL 加载的 Javascript 片段,该 URL 获取您的 DOM,或遍历您的链接列表或其他内容,通过您注册的回调对象将结果发送回给您通过addJavascriptInterface()

Is there a way to get the HTML in a webview in an Android app?

Not easily. javascript: URLs work, and addJavascriptInterface() allows you to set up callbacks that the Javascript can call. You may be able to create a snippet of Javascript loaded by a javascript: URL that obtains your DOM, or walks your list of links, or something, sending the results back to you via the callback object you registered via addJavascriptInterface().

帅冕 2024-10-16 09:09:27
 a = (WebView) findViewById(R.id.web);

a.loadUrl("javascript:(function() { " +
                "document.getElementById('inputID').value='"+EditText.getText()+"'; " +
                "document.getElementById('inputID').value='"+EditText.getText()+"'; " +
                "})()");
a.loadUrl("javascript:(function() {IWBUTTON1_onclick(false);})()"); 
 a = (WebView) findViewById(R.id.web);

a.loadUrl("javascript:(function() { " +
                "document.getElementById('inputID').value='"+EditText.getText()+"'; " +
                "document.getElementById('inputID').value='"+EditText.getText()+"'; " +
                "})()");
a.loadUrl("javascript:(function() {IWBUTTON1_onclick(false);})()"); 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文