【问题标题】:Manipulate the url a webview gets before it starts loading在开始加载之前操作 webview 获取的 url
【发布时间】:2013-05-14 09:32:38
【问题描述】:

我想将当前位置作为请求变量添加到 web 视图中加载的 URL,这样我就可以在页面上使用此信息而无需重新加载或额外请求。

我有一个带有 shouldOverrideUrlLoading 的 WebviewClient,但是当使用 loadUrl 传递请求时,它不会接收请求。我读到可以使用 shouldInterceptRequest 拦截请求的 URL,但我在 API 级别 8 上,并不想仅为此更改它。

有没有办法在 URL 被 webview 加载之前对其进行操作?

【问题讨论】:

    标签: java android webview


    【解决方案1】:

    是的,在调用loadUrl 之前更改Url。您可以创建一个修改Url 的函数并在loadUrlshouldOverrideUrlLoading 中调用它

    public Url addLocationToUrl(Url url) {  
        Url newUrl = url;
        //do something with url
        return newUrl;
    }   
    
    loadUrl(addLocationToUrl(someUrl));
    
    //and in your WebViewClient
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        mWebView.loadUrl(addLocationToUrl(someUrl));
        return true;
    }
    

    【讨论】:

    • 我确实想到了这一点,但我的位置(此时)仅在 webviewclient 中可用......再说一次,也许这是我重构代码的线索......跨度>
    • 我刚刚重构了我的代码以使用您的建议,接受了您的回答,因为这不仅是一个很好的解决方案,而且我的代码也因为重构而变得更好;)谢谢!
    猜你喜欢
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多