【问题标题】:Change Android webview content (hash) without reloading the url在不重新加载 url 的情况下更改 Android webview 内容(哈希)
【发布时间】:2019-02-04 17:17:22
【问题描述】:

我有 2 个 webview:Webview1 和 Webview2(比如说)。用户到达 Webview1(加载一个 url)。现在当用户点击 Webview2 时,我需要加载一个像 www.abcd.com#Page1 这样的 url。现在当用户遍历到Webview1中的第二个页面时,我需要在Webview2中加载www.abcd.com#Page2。同样,当用户在 Webview1 中遍历页面时,我需要相应地更改 Webview2 中的内容。

但如果我每次都使用Webview2.loadurl(),则加载需要时间。相反,我只想更改内容而不重新加载它。

注意:我从 Webview1 中获得了 #Page1、#Page2 等值,所以不用担心。请让我知道如何实现这一点,而无需每次在 Android webview 中重新加载新的 url。

【问题讨论】:

    标签: javascript android html android-webview


    【解决方案1】:

    我想通了:

    最初使用 url 加载 webview(比如www.abcd.com#Page1)。现在每当你想更新像www.abcd.com#Page2(哈希值从第1页到第2页)这样的url时,只需执行以下操作:

    webView.evaluateJavascript("location.hash=\"" + url + "\";", new ValueCallback<String>() {
                @Override
                public void onReceiveValue(String value) {
                    if(Debugging.Enabled) Log.d(TAG(), "onReceiveValue(value): " + value);
                    }
            });
    

    其中 url 是新的哈希值。即第2页。 Webview 加载速度非常快:)

    【讨论】:

    • 注意:请务必转义 URL,否则用户可能会通过简单地添加 "; &lt;evil code&gt;;" 来欺骗执行任意 JavaScript
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 2014-01-10
    • 2020-10-04
    • 1970-01-01
    • 2013-08-12
    • 2013-07-07
    相关资源
    最近更新 更多