2012-01-31 41 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驗證。

希望這會有所幫助!

相關問題