Android WebView goBackMethod使我脱离web视图片段
我在片段中使用webview。我想在片段上实现onBackPress,以便应用程序从一个链接返回到上一个链接。这是我下面的代码Android WebView goBackMethod使我脱离web视图片段,android,webview,Android,Webview,我在片段中使用webview。我想在片段上实现onBackPress,以便应用程序从一个链接返回到上一个链接。这是我下面的代码 @Override public void onBackPressed() { // super.onBackPressed(); if(webView!=null && webView.canGoBack()) { webView.goBack(); } else { super.onBa
@Override
public void onBackPressed() {
// super.onBackPressed();
if(webView!=null && webView.canGoBack()) {
webView.goBack();
}
else {
super.onBackPressed();
}
}
我已经通过基本片段在片段中实现了这一点
webView.goBack()
但它并没有回到上一页,而是把我带出了片段。
为什么会这样呢?只需将下面的代码放在back按钮实现中
switch (view.getId()){
case R.id.imag_back:
if (webview.canGoBack()) {
webview.goBack();
} else {
finish();
}
}
希望这能解决你的问题
另外,请检查您的父活动,以了解onbackpressed()方法使用ChildFragmentManager并将您的webView URL放入其中 在你的活动中
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportFragmentManager().beginTransaction().add(R.id.content, WebFragment.newInstance(), "WEB_FRAGMENT_TAG")
.addToBackStack(null)
.commit();
}
@Override
public void onBackPressed() {
WebFragment fragment = (WebFragment) getSupportFragmentManager().findFragmentByTag("WEB_FRAGMENT_TAG");
int stackEntryCount = fragment.getChildFragmentManager().getBackStackEntryCount();
if (stackEntryCount > 0) {
fragment.getChildFragmentManager().popBackStack();
fragment.popUrlBack();
} else {
super.onBackPressed();
}
}
}
在你的片段中
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
getChildFragmentManager().beginTransaction().addToBackStack(url).commit();
}
});
}
public void popUrlBack() {
webView.goBack();
}
它正在执行代码webView.goBack(),然后它将退出。您还必须在主活动中检查onback实现