如何关闭在android编程中由javascript打开的webview

时间:2017-08-21 09:30:22

标签: android webview android-webview

我有一个只包含一个Web视图的android应用程序,我已经在web视图中加载了url(由.net开发,使用javascript),它有facebook登录,当用户点击那个facebook按钮时,它打开了facebook对话框,如果用户不想登录,他会点击回到android但是那个facebook对话框仍然出现,怎么回到fom facebook对话框到主网页视图?

我试过这段代码

 @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_BACK:
                if (mainWebView.canGoBack()) {
                    mainWebView.goBack();
                    Log.d("webview<---", "going_back");
                } else if (newWebView != null && newWebView.isFocusable()) {
                    FBWebView.removeAllViews();
                    FBWebView.clearHistory();
                    FBWebView.getParent();

                      FBWebView=null;
                    //FBWebView.addView(mWebView);
                    // FBWebView.loadUrl(url);
                    //startActivity(new Intent(MainActivity.this, MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
                    Log.d("fb_webview<---", "finish");

                }
                return true;
        }

    }
    return super.onKeyDown(keyCode, event);
}

仍然没有用,可以任何人建议如何从fb对话框返回到主Web视图,这里FBWebview是在这个活动中动态创建的,而mainWebview是通过xml初始化的,如何关闭fbWebView以显示mainwebview?

1 个答案:

答案 0 :(得分:0)

KeyEvent.KEYCODE_BACK案例

下的return语句之前写下面的代码
  /* Closing newly created popup window */
                if (Build.VERSION.SDK_INT < 18) {
                    newWebView.clearView();
                } else {
                    newWebView.loadUrl("about:blank");
                }