我想要检测在谷歌认证期间WebView中发生重定向时url的变化。问题是谷歌限制使用WebView进行身份验证,所以我使用WebChromeClient。WebChromeClient没有ShouldOverrideUrlLoading方法。我曾尝试覆盖OnReceivedTitle方法,但它没有检测到url更改。有人能帮帮忙吗?
class CustomWebViewClient : WebChromeClient
{
public string Url { get; private set; }
public override void OnReceivedTitle(WebView view, string title)
{
base.OnReceivedTitle(view, title);
Url = view.Url;
}
}发布于 2018-08-03 16:40:23
谷歌限制从webview.But请求oAuth登录在我的案例中,我的请求是自定义的oAuth提供程序。我认为并假设,您想要检测url例如: webview的oAuth回调是在url视图中看到的一个混乱的案例。我在我的案例中解决了这个问题:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Timber.e("WEBVIEW %s", url);
if(weHaveReceivedAnOAuthCallback(url)){
view.setVisibility(View.GONE);
String reply = retrieveParamaters(url);
oAuthCallbackListener.onOAuthCallback(reply);
}
if (url.startsWith("http") || url.startsWith("https")) {
return false;
}else{
return true;
}
}
private static boolean weHaveReceivedAnOAuthCallback(String url) {
return url.startsWith(BuildConfig.API_OAUTH_REDIRECT);
}
private static String retrieveParamaters(String url) {
return url.replace(BuildConfig.API_OAUTH_REDIRECT, "");
};我希望这对你的问题有所帮助。
https://stackoverflow.com/questions/51667786
复制相似问题