2012-01-31 10 views
2

私のアプリケーションから認証された後、新しいウィンドウが表示され、後でアプリケーションにリダイレクトされます。次に、自分のアクティビティでonNewIntent()が呼び出されます。しかし、私のアプリに戻って選択すると、TwitterのWebページはまだ表示されます。アプリケーションにリダイレクトされたTwitterページは表示しないでください。 TwitterのWebビューを閉じるにはどうしたらいいですか?アクティビティに戻るときにWebviewを閉じるにはどうすればいいですか?

答えて

0

私はこのオープンなWebビュー(バック私の活動へのリダイレクトTwitterページ)

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))); 
} 

私の活動からこのメソッドを呼び出します。 この後、それは私の活動と活動のonNewIntent()関数が示されたが、私は戻るボタンを押したときに、それが再び私の問題は、私の提案はませにあることのTwitterページを閉じる方法

+1

あなたの質問を編集し、答えを提供する必要はありません... – trgraglia

-1

新しいウィンドウはアクティビティですか?その場合は、主なアクティビティからstartActivityForResult()にコールバックし、コールバックを実装します。

コールバックがトリガーされると、必要に応じてWebビューをリロードできます。

メインアクティビティのonCreate()がスマートで、ウェブビューで古い結果が表示されないようにアプリを再構成することもできます。

+1

それは私を助けません –

0

ある.Now Twitterのページが表示されている呼び出し、新しいWebブラウザウィンドウで「authURL」を起動します。私が個人的にやりたいことは、WebViewを含む新しいActivityを起動し、そのActivityにURLを渡すことです。そうすれば、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検証を取得することができます。

希望すると便利です。

関連する問題