2012-01-31 64 views
2

从我的应用程序进行身份验证后,会显示一个新窗口,稍后将重定向回应用程序。然后onNewIntent()在我的活动中被调用。但是当选择返回到我的应用程序时,twitter网页仍然显示。不应显示带有重定向回应用程序的Twitter页面。如何关闭Twitter webview?如何在返回到我的活动时“关闭”Webview?

回答

0

我把从我的活动

public void askOAuth(Context context,Handler handler) { 

     _msg = new Message(); 
     _msg.arg1 = AUTHORISE_TWITTER_APP; 
     mContext=context; 
     this.handler=handler; 
     consumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY,CONSUMER_SECRET); 
     provider = new DefaultOAuthProvider(
       "http://twitter.com/oauth/request_token", 
       "http://twitter.com/oauth/access_token", 
       "http://twitter.com/oauth/authorize");// 
     //provider.setOAuth10a(true); 
     String authUrl = provider.retrieveRequestToken(consumer,CALLBACK_URL); 
     mContext.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl))); 
} 

这种开放式的Web视图(Twitter页面重定向回我的活动)这个方法。 在此之后它调用onNewIntent()我的活动和活动的功能显示,但是当我按下返回键则再次显示Twitter页面。现在我的问题是,如何关闭Twitter页面

+1

你应该编辑你的问题,而不是提供答案... – trgraglia 2012-04-02 19:55:08

-1

新窗口是一个Activity吗?如果是这样,从您的主要活动,请致电startActivityForResult()并实施回调。

当您的回调被触发时,您可以根据需要重新加载您的webview。

您也可以重构您的应用程序,以便您的主要活动的onCreate()足够智能,不会在web视图中显示旧结果。

+1

它不帮我 – 2012-02-24 11:27:04

0

我的建议是在新的Web浏览器窗口中启动“authURL”。我个人喜欢做的是启动一个包含WebView的新Activity,并将该URL传递给该Activity。这样,在Oauth身份验证过程中,您可以更轻松地管理应用程序中的导航。因此,而不是这样做:

String authUrl = provider.retrieveRequestToken(consumer,CALLBACK_URL); 
mContext.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl))); 

我会做这个:

Intent intent = new Intent(mContext, YourActivityWithAWebView.class); 
intent.putExtra("AUTH_URL", authUrl); 
startActivity(intent); 

然后,在你的WebView,您可以为您的shouldOverrideUrlLoading()方法来获得验证者的URL和检索的Oauth验证。

希望这会有所帮助!

相关问题