0
Fragment
을 사용하여 WebView
을 만들었습니다.웹 뷰 (프래그먼트)를 보는 동안 뒤로 버튼 재정의
public class MyWebView extends Fragment {
private WebView webView;
@SuppressLint("SetJavaScriptEnabled")
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Bundle args = getArguments();
String url = args.getString("url");
webView = (WebView) getView().findViewById(R.id.webView);
webView.setWebViewClient(new MyBrowser());
WebSettings webSettings = webView.getSettings();
webSettings.setSaveFormData(true);
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setSupportZoom(true);
webSettings.setBuiltInZoomControls(true);
webSettings.setLoadsImagesAutomatically(true);
webSettings.setJavaScriptEnabled(true);
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webView.loadUrl(url);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.web_view, container, false);
view.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (webView.canGoBack()) {
webView.goBack();
return true;
}
}
return false;
}
});
return view;
}
private class MyBrowser extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
}
내가 onBackPressed()
을 무시하려하지만 Fragment
와 함께 작동하지 않을 것 : 여기 내 코드입니다. 그래서 setOnKeyListener()
을 사용했지만 작동하지 않습니다. 이전 웹 페이지로 돌아가는 대신 뒤로 버튼이 앱을 닫는 이유를 말해 줄 수 있습니까?
나는 http://stackoverflow.com/questions/6077141/how-to-go-back-to-previous-page-if-back-button- ... 더 많은 정보를 찾을 수 있습니다 여기에 생각 웹에서 눌렀을 때 – PaytoN
@PaytoN URL이 프래그먼트가 아닌 사용 행위를 나타냄 – WardaLyn
뒤로 버튼은 현재 열어 본 화면에서 나가게합니다. 웹보기의 경우 웹보기에서 어떤 페이지에 있든 상관 없습니다. 그것의 다만 1 개의 스크린, (단편 또는 활동) 그래서 그것을 누르는 동안 현재 스크린을 맑게하고 돌아 간다, 당신이 안으로 웹 페이지 연결이 나던 한. –