2012-04-26 65 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