gpt4 book ai didi

android - 从 webview shouldOverRideUrlLoading 确定 url 的元素

转载 作者:行者123 更新时间:2023-11-29 16:24:40 27 4
gpt4 key购买 nike

我在带有 webview 的自定义 Activity 中显示 html。我压倒一切

public boolean shouldOverrideUrlLoading(WebView view, String url) {

拦截某些网址。现在我希望能够找出有关该 url 周围 html 的更多详细信息。

在我的例子中,我想获取包含 url 的 html 元素。例如。如果 url 来自

<a href="http://stackoverflow.com/users/136445/manfred-moser">Manfred Moser</a>

我希望能够以某种方式从 anchor 标记中检索值“Manfred Moser”。有没有办法做到这一点。我发现您无法从 Java 访问 DOM。

我能想到的一种方法是单独下载页面并在将其加载到 webview 之前对其进行解析。然而,这充其量只是一个丑陋的黑客攻击。有没有更好的办法?

最佳答案

有一个肮脏的黑客:

  1. 绑定(bind)一些 Java 对象,以便它可以从带有 WebView 的 Javascript 中调用:

    addJavascriptInterface(javaObjectExposed, "JSname")
  2. 通过以下方式在现有页面中强制执行 javascript

    WebView.loadUrl("javascript:window.JSname.passData("some data");"); 

此处描述:http://lexandera.com/2009/01/extracting-html-from-a-webview/

注意:这是一个安全风险 - 此网页中的任何 JS 代码都可以访问/调用您绑定(bind)的 Java 对象。最好将一些一次性 cookie 传递给 loadUrl() 并将它们传递回您的 Java 对象以检查调用的是您的代码。

关于android - 从 webview shouldOverRideUrlLoading 确定 url 的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5124064/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com