首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检测WebChromeClient中的url更改

如何检测WebChromeClient中的url更改
EN

Stack Overflow用户
提问于 2018-08-03 15:52:23
回答 1查看 232关注 0票数 0

我想要检测在谷歌认证期间WebView中发生重定向时url的变化。问题是谷歌限制使用WebView进行身份验证,所以我使用WebChromeClient。WebChromeClient没有ShouldOverrideUrlLoading方法。我曾尝试覆盖OnReceivedTitle方法,但它没有检测到url更改。有人能帮帮忙吗?

代码语言:javascript
复制
 class CustomWebViewClient : WebChromeClient
    {
       public string Url { get; private set; }

        public override void OnReceivedTitle(WebView view, string title)
        {
            base.OnReceivedTitle(view, title);
            Url = view.Url;
        }        
    }
EN

回答 1

Stack Overflow用户

发布于 2018-08-03 16:40:23

谷歌限制从webview.But请求oAuth登录在我的案例中,我的请求是自定义的oAuth提供程序。我认为并假设,您想要检测url例如: webview的oAuth回调是在url视图中看到的一个混乱的案例。我在我的案例中解决了这个问题:

代码语言:javascript
复制
@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, "");
  };

我希望这对你的问题有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51667786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档