给出两个初始化并添加在backstack片段中(其中一个我在屏幕上看到)。每个片段都有CordovaWebView作为视图。在一个网页视图中,我已将“www.google.com”加载到另一个“www.bing.com”中。现在,如果我按一个后退按钮 - 我正在等待,那个带有“www.bing.com”的片段将从堆栈中加入,我将在设备屏幕上看到谷歌站点。而不是这个,应用程序立即退出(很短的时间我可以看到google.com,但然后app完全退出)
活动的一小部分:
cordova.getActivity().getFragmentManager()
.beginTransaction()
.replace(R.id.fragment_container, webViewFragmentGoogle)
.addToBackStack(null)
.commit();
cordova.getActivity().getFragmentManager()
.beginTransaction()
.add(R.id.fragment_container, webViewFragmentBing)
.addToBackStack(null)
.commit();
片段:
public class WebViewFragment extends Fragment {
private String mUrl = "file:///android_asset/www/main.html";
private CordovaWebView mWebView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.webview_fragment,container, false);
if (view != null)
mWebView = (CordovaWebView)view;
Bundle bundle=getArguments();
String iframeUrl = bundle.getString("iframeUrl");
if (!mUrl.isEmpty())
{
mWebView.loadUrl(iframeUrl);
}
return view;
}
public void goToUrl(String url) {
mWebView.loadUrl(url);
}
@Override
public void onResume() {
super.onResume();
if (mWebView!= null) {
mWebView.handleResume(true, false);
}
}
@Override
public void onPause() {
if (mWebView != null)
{
mWebView.handlePause(true);
}
super.onPause();
}
@Override
public void onDestroy() {
if (mWebView != null)
{
mWebView.handlePause(true);
mWebView.handleDestroy();
}
super.onDestroy();
}
}
答案 0 :(得分:2)
这是因为CordovaWebView.onKeyUp()逻辑 - 它拦截你的击键并在它们上挂钩一些动作:在这种情况下,动作是:
this.cordova.getActivity().finish();
我个人也发现杀死我的活动有点干扰,特别是在我无法以任何方式配置它的情况下。有关详细信息,请查看CordovaWebView messes up with onBackPressed method in android。