试图在webview中跟踪网址

时间:2016-08-17 11:01:40

标签: java android webview

我有一个应用程序,我加载外部网页。在该页面上,我有一个重定向到另一个URL的链接。我想要的是从我的Android应用程序内部跟踪外部网页的网址,以便当点击该特定链接并开始加载网址时,网页视图将关闭,用户将返回到我的应用程序的主屏幕

String token;
WebView viewer;
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_web_view);

    viewer = new WebView(this);
    viewer.getSettings().setJavaScriptEnabled(true);
    viewer.setWebViewClient(wvc);
    setContentView(viewer);

    Intent intent = getIntent();
    token = intent.getStringExtra(home.EXTRA_MESSAGE);
    String home = "http://10.0.2.2:8888/map/index?token="+token;

    viewer.loadUrl(home);

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


private WebViewClient wvc = new WebViewClient()
{
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url)
    {
        if(url == "http://10.0.2.2:8888/map/api/logout")
        {
            view.clearHistory();
            view.destroy();
            return true;
        }
        return false;
    }
};

1 个答案:

答案 0 :(得分:0)

这种情况不正确

if(url.equals("http://10.0.2.2:8888/map/api/logout"))

应该是

==

因为endsWith()会比较引用而不是值,而另一个则是。

P.S:,以便日后减少更改/错误,使用equals()代替if(url.endsWith("map/api/logout")) ;例如,域名改变了你的条件仍然有效。

  var coordinate=[[]];
  var x, y;
      for (x=1; x <= 7; x += 1) {
          for (y=1; y <= 5; y += 1) {
              coordinate[x][y] = "("+x+","+y+")";
          }
      }