获取WebView导航事件
问题描述:
我正在一个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;
}
}
}
答
如果我理解你的问题正确的话,你需要一种方法来检查用户是否有送他的鸣叫完成。你最好的选择是检查在你的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
“从我的应用程序中退出后,它应该返回到我的应用程序。”你是什么意思?用户在你的应用程序的webview中,那么他应该去哪里? – THelper 2012-04-26 17:21:53
感谢您的回复。推特后,我可以重定向到另一个活动。在哪种情况下,我可以致电其他活动。 – Arun 2012-04-26 18:26:38