2012-04-26 113 views
0

我正在一個android應用程序中發佈Twitter推文,並且正在使用Web視圖窗口小部件。如果用戶沒有登錄,它將進入登錄屏幕,如果它登錄的用戶將進入推文頁面。我的要求是從我的應用程序兩次後它應該返回到我的應用程序。我怎樣才能通過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

「從我的應用程序中退出後,它應該返回到我的應用程序。」你是什​​麼意思?用戶在你的應用程序的webview中,那麼他應該去哪裏? – THelper 2012-04-26 17:21:53

+0

感謝您的回覆。推特後,我可以重定向到另一個活動。在哪種情況下,我可以致電其他活動。 – Arun 2012-04-26 18:26:38

回答

2

如果我理解你的問題正確的話,你需要一種方法來檢查用戶是否有送他的鳴叫完成。你最好的選擇是檢查在你的webview中加載的網址。希望這個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 
    } 
} 

如果不能基於用戶完成的網址檢測,然後事情要複雜得多。在這種情況下,您可以嘗試添加一個JavaScript,允許您使用extract the html of the loaded page,如果用戶完成或不需要解析html以查找線索。

+0

感謝您的回答.... – Arun 2012-04-26 19:33:53