按下我的Webview导致输出

时间:2014-11-17 16:47:05

标签: android android-fragments webview android-webview android-button

非常好。 我有一个片段称为抽屉列表。在这个片段中,我有一个显示网页的webView。 我可以在网上冲浪,但问题出现在我想要返回上一页,并在后退按钮上发出脉冲。 我得到的结果是按下后退按钮,应用程序关闭。我想要的是返回上一页。

代码片段如下:

public class BClasesWebViewFragment extends Fragment {


private WebView webView;

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);


    WebSettings webSettings =  this.webView.getSettings (); 
    webSettings . setJavaScriptEnabled ( true ); 
    webSettings . setDomStorageEnabled ( true ); 
    this . webView . setWebViewClient ( new  WebViewClient ()); 
    this . webView . setWebChromeClient ( new  WebChromeClient ()); 
    webSettings . setLoadWithOverviewMode ( true );
    webSettings . setUseWideViewPort ( true );

    webView.setInitialScale(1);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setLoadWithOverviewMode(true);
    webView.getSettings().setUseWideViewPort(true);
    webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
    webView.setScrollbarFadingEnabled(false);

    webView.getSettings().setBuiltInZoomControls(true);



    webView.loadUrl("http://google.com/");


    webView.setDownloadListener(new DownloadListener() {
        public void onDownloadStart(String url, String userAgent,
                String contentDisposition, String mimetype,
                long contentLength) {
          Intent i = new Intent(Intent.ACTION_VIEW);
          i.setData(Uri.parse(url));
          startActivity(i);
        }
    });     
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_bclases_webview, container, false);
    webView = (WebView)view.findViewById(R.id.webViewBClases);
    return view;
}

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.actionbar_menu, menu);
    super.onCreateOptionsMenu(menu,inflater);
}


}

非常感谢大家。 我在这个网站上学到了很多东西

1 个答案:

答案 0 :(得分:0)

试试这个

webView.setOnKeyListener(new OnKeyListener()
    {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event)
        {
            if(event.getAction() == KeyEvent.ACTION_DOWN)
            {
                WebView webView = (WebView) v;

                switch(keyCode)
                {
                    case KeyEvent.KEYCODE_BACK:
                        if(webView.canGoBack())
                        {
                            webView.goBack();
                            return true;
                        }
                        break;
                }
            }

            return false;
        }
    });

这将完美地运作。