2012-04-26 7 views
0

私はTwitterのツイートを投稿できるアンドロイドアプリケーションで作業しています。私はWeb Viewウィジェットでそれをやっています。ユーザーがログインしていない場合、ログイン画面に移動し、ログインしているユーザーがツイートページに移動します。私の要件は、私のアプリケーションからtwettingした後です私のアプリケーションに戻る。この状況をWebViewでどのように処理できますか。 WebViewからどのようにリダイレクトURLを取得しますか?WebViewのナビゲーションイベントを取得

私を助けてください。

私のコードに見てください:

public class TestTwittershareActivity extends Activity { 
    WebView webview; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     webview = (WebView) findViewById(R.id.webview); 
     webview.getSettings().setJavaScriptEnabled(true); 
     webview.loadUrl("http://www.twitter.com?status="); 
     webview.setWebViewClient(new HelloWebViewClient()); 
    } 

    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) { 
      webview.goBack(); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

    private class HelloWebViewClient extends WebViewClient { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 

      return true; 
     } 
    } 
} 
+1

"私のアプリケーションからtwettingした後、アプリケーションに戻る必要があります。"それはどういう意味ですか?ユーザーはアプリケーション内でWebビューを使用しているため、次にどこに行く必要がありますか? – THelper

+0

返信ありがとうございます。tweeting後、別のアクティビティにリダイレクトできます。どのイベントで他のアクティビティを呼び出すことができますか。 – Arun

答えて

2

私が正しくあなたの問題を理解していれば、ユーザーが自分のツイートを送信して行われているかどうかを確認する方法が必要です。あなたの最善の策はあなたのwebviewにロードされているURLをチェックすることです。うまくいけば、このURLには、つぶやきが行われていることが示されています(ステータス部分に何かがあるかもしれません)。 URLを確認するには、既に作成したHelloWebViewClientクラスを使用し、onPageFinishedメソッドをオーバーライドします。例えば

@Override 
public void onPageFinished(WebView view, String url) { 
    super.onPageFinished(view, url); 
    if (url.contains("status=DONE")) { 
     // start your activity here 
    } 
} 

ユーザーが終了したURLに基​​づいて検出できない場合、事態ははるかに複雑になります。その場合、extract the html of the loaded pageにできるjavascriptを追加しようとすることができ、ユーザーが完了した場合に手がかりを探すためにhtmlを解析する必要があります。

+0

あなたの答えをありがとう.... – Arun

関連する問題