我最近为 Android 编写了一个简单的 Twitter 应用程序,以了解 Twitter API 和 OAuth 的基本原理。
该应用程序的主要 Activity 只是要求输入用户名。然后调用另一个处理 OAuth 和 Twitter API 调用的 Activity 。它将用户重定向到授权页面,然后在用户完成后返回到应用。
它过去工作得很好,但现在由于某种原因,当我调用 webview.loadUrl(authorizationURL) 时,没有任何反应。我从来没有改变任何会影响 WebView 的东西......这是我的代码:
@Override
public void onResume() {
super.onResume();
try {
if(weNeedCredentials()) {
obtainCredentials();
}
follow(mUsername);
} catch (OAuthException oae) {
// omitted
}
}
private boolean weNeedCredentials() {
// assume the method returns true
}
private void obtainCredentials() {
final Token requestToken = mOauthService.getRequestToken();
String authUrl = mOauthService.getAuthorizationUrl(requestToken);
// I verified that authUrl is the correct url (and != null)
final WebView oauthView = (WebView) findViewById(R.id.oauthview);
oauthView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(someCondition) {
oauthView.setVisibility(View.GONE);
doOtherStuff();
return true;
}
return super.shouldOverrideUrlLoading(view, url);
}
});
oauthView.getSettings().setJavaScriptEnabled(true);
oauthView.loadUrl(authUrl);
}
这是我的布局 xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<WebView
android:id="@+id/oauthview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
而且我还在 list 中包含了适当的互联网权限。
WebViewCoreThread 在应用程序的生命周期内一直在运行,WebViewWorkerThread 稍后弹出,但从未出现过 WebView(甚至没有出现白屏)。该应用程序也从不阻止。它继续运行,就好像 loadUrl() 行被简单地注释掉了一样。
我已经在我的手机 (Droid X2) 和模拟器上进行了测试,两者的结果相同。任何帮助将不胜感激。
提前致谢!
最佳答案
It continues running as if the loadUrl() line were simply commented out.
它将始终“继续运行,就好像 loadUrl()
行被简单地注释掉一样”。 loadUrl()
是异步的,不会阻塞。
即兴表演,要么:
weNeedCredentials()
返回false
,或者follow()
正在替换 UI,或者- Twitter 正在进行重定向,并且
someCondition
为true
,因此您正在使WebView
GONE
马上 - 您正在加载的 URL 有问题
关于android - WebView.loadUrl(url) 什么都不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6771074/