Android 推特没有';设置WebClient时,无法返回活动
我使用Twitter4J连接到Twitter。通过为WebView设置WebViewClient,可以防止通过默认浏览器加载。问题是Twitter不会回到我的活动中。重定向后,它在WebView上显示“网页不可用” 召唤Android 推特没有';设置WebClient时,无法返回活动,android,twitter4j,Android,Twitter4j,我使用Twitter4J连接到Twitter。通过为WebView设置WebViewClient,可以防止通过默认浏览器加载。问题是Twitter不会回到我的活动中。重定向后,它在WebView上显示“网页不可用” 召唤 final RequestToken requestToken = twitter.getOAuthRequestToken(Constant.CALLBACK_URL); twitterSite.loadUrl(requestToken.get
final RequestToken requestToken = twitter.getOAuthRequestToken(Constant.CALLBACK_URL);
twitterSite.loadUrl(requestToken.getAuthenticationURL());
onNewIntent和WebViewClient
@Override
protected void onNewIntent(final Intent intent) {
super.onNewIntent(intent);
setResult(RESULT_OK);
finish();
}
private class CustomWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(final WebView view, final String url) {
if(url.startsWith("http")) {
view.loadUrl(url);
return true;
}
return false;
}
显示
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
>
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".TwitterLoginActivity"
android:label="@string/title_activity_main"
android:launchMode="singleInstance">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="test123"/>
</intent-filter>
</activity>
</application>
我认为你应该这样使用: 1) , 2) ,
请测试一下。祝你好运 您的代码很好。只需要进行如下更改
private class CustomWebViewClient extends WebViewClient
{
@Override
public boolean shouldOverrideUrlLoading(final WebView view, final String url)
{
if(url.startsWith(Constant.CALLBACK_URL))
{
//set visibility GONE/INVISIBLE for webview.
}
else if(url.startsWith("http"))
{
view.loadUrl(url);
return true;
}
return false;
}
回答可能有帮助~long..back。。。但是我在写。。。。。这可能会帮助其他人检查webView。canGoBack()返回true或false。基于此,您可以编写代码。嗨,我在设置webView之后返回true,但是。。。有点怪。它返回到当前活动,webView消失。我的意思是这个帐篷不叫!!!即将工作。当另一个活动使用flag Intent启动您的活动时,onNewIntent将调用。flag_Activity_REORDER_to_FRONT。所以,当您使用浏览器时,浏览器会使用Intent.FLAG\u activity\u REORDER\u TO\u FRONT标志启动您的活动。但在webview的情况下,onNewIntent将永远不会调用。因此,在回拨url的条件下,您可以编写代码,在twitter登录后获取访问令牌或任何您需要的内容。
public static final String CALLBACK_URL = "test123://TwitterLoginActivity";
<activity
android:name=".TwitterLoginActivity"
android:label="@string/title_activity_main"
android:launchMode="singleInstance">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="test123" android:host="TwitterLoginActivity"/>
</intent-filter>
</activity>
private class CustomWebViewClient extends WebViewClient
{
@Override
public boolean shouldOverrideUrlLoading(final WebView view, final String url)
{
if(url.startsWith(Constant.CALLBACK_URL))
{
//set visibility GONE/INVISIBLE for webview.
}
else if(url.startsWith("http"))
{
view.loadUrl(url);
return true;
}
return false;
}