【问题标题】:how i can modify the url of webview.goBack() before loading the url我如何在加载 url 之前修改 webview.goBack() 的 url
【发布时间】:2021-07-31 22:48:10
【问题描述】:

我的 onBackPressed 函数有这段代码 他们有没有可能在后台加载时从加载的 url 中删除一些字符? 就像 webview.goBack() 的 url 是:

https://website.com/userpanel/testlines.php?action=new_test_line

可以在加载之前修改 url 吗?像这样:

https://website.com/userpanel/testlines.php

删除“?”之后的所有内容 如何修改 webview.goBack() 的值??

    public void onBackPressed() {
        if (!webview.isFocused() || !webview.canGoBack()) {
            new AlertDialog.Builder(this)
                    .setTitle("EXIT")
                    .setMessage("Are you sure. You want to close this app?")
                    .setPositiveButton("Yes", (dialog, which) -> finish())
                    .setNegativeButton("No", null).show();
        } else {
            webview.goBack();
        }
    }

谢谢

【问题讨论】:

    标签: java android webview


    【解决方案1】:

    你可以试试这个,将你的 url 传递给这个方法,这将返回不带参数的 URL

    public static String getOnlyURL(String URL) throws URISyntaxException {
        URI uri = new URI(URL);
        return new URI(uri.getScheme(),
                       uri.getAuthority(),
                       uri.getPath(),
                       null,
                       uri.getFragment()).toString();
    }
    

    【讨论】:

    • 感谢您的回答,但我如何将 webview.goBack() url 添加到您的函数中?
    • 如果要更改URL,则不能使用go back,而是使用加载url,webview.loadUrl(getOnlyURL(YOUR_URL));
    • goback() 使用缓存列表中的 url,如果我在某些用户操作后返回;动作是重复的,就像在这个链接上一样,如果我点击按钮生成行我有这个链接:https://website.com/userpanel/testlines.php?action=new_test_line ,现在如果我返回它生成的另一行,我需要返回没有链接:?action=new_test_line,这个这就是为什么我需要在回退之前修改缓存列表的 url
    • 我需要这样的东西 ` if (URL.contains("?")) { webview.loadUrl(URL.substring(0, URL.indexOf("?"))); }` 但带有 goback() url 缓存列表
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-03
    • 2022-06-11
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多