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

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

有没有一种方法可以在Webview加载URL之前对其进行操作?

最佳答案

是的,在呼叫Url之前先更改loadUrl。您可以创建一个修改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;
}

10-05 18:31