操作webview在开始加载之前获取的URL

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

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

有没有办法在webview加载之前操纵URL?

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

 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; }