【发布时间】:2011-10-07 23:24:41
【问题描述】:
-编辑:找到解决方案-
经过一番繁重的搜索后弄清楚了 - 一个人(我的意思是一个人)说他们改为使用 onPageLoad();这非常适合我的目的。不同之处在于 onPageLoad() 比 shouldOverrideUrlLoading 运行得晚,但它对我的代码没有影响。
我正在尝试使用 OAuth 为 Android 应用程序设置 Twitter 授权,到目前为止,我可以成功地将用户发送到授权 URL,但是,我现在要做的是拦截重定向到回调 (这只会导致 404 错误,我们的回调 URL 不会在我们的服务器上有关联的页面)。我试图做的是检查 URL 是否是我们的回调,然后从 URL 中提取 OAuth 验证器。我用这段代码设置了我的 WebView:
view = (WebView)findViewById(R.id.twitterWbVw);
view.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView wView, String url)
{
String urlHolder;
String[] verifExtrctr;
urlHolder = url.substring(0, url.indexOf('?'));
System.out.println("url");
if(urlHolder.equalsIgnoreCase(CALLBACK_URL))
{
verifExtrctr = urlHolder.split("?");
verifExtrctr = verifExtrctr[2].split("=");
if(verifExtrctr[0].equalsIgnoreCase("oauth_verifier"))
{
params[5] = verifExtrctr[1];
return true;
}
else
{
System.out.println("Inocorrect callback URL format.");
}
}
else
{
wView.loadUrl(url);
}
return true;
}
});
view.loadUrl(urlAuthorize.toExternalForm());
事情是甚至 System.out.println("url");(我用来调试的)不运行!所以我很漂亮想法很枯燥,找不到有类似问题的人。授权 URL 正常,我可以成功授权应用程序,但是由于某种原因重定向到回调 URL 永远不会被拦截。任何帮助将不胜感激,如果这很重要,这在我的 onResume() 中。
【问题讨论】:
-
您确定 shouldOverrideUrlLoading 是您想要覆盖的正确方法吗?
-
我很确定 - 据我所知,每次加载 URL 时它都会运行
-
好吧,如果
System.out.println("url");没有运行,我可能会再次检查您是否覆盖了正确的方法 -
我一直在环顾四周,它似乎就是我要找的东西。我找不到有类似问题的人;如果这个方法在大多数情况下的问题是每次加载 URL 时都会运行。
-
我在模拟器上遇到了同样的问题,但在真实设备上却没有。很奇怪。
标签: android https android-webview webviewclient