当前位置:首页 » 网页前端 » web系统如何设计回退
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

web系统如何设计回退

发布时间: 2022-12-28 08:57:27

Ⅰ fragment监听返回键(webview回退上一个页面)

1、创建自定义接口类

public interface BackHandleInterface {

void onSelectedFragment(BackHandleFragment backHandleFragment);

}

2、创建一个自定义Fragment类

public abstract class BackHandleFragmentextends BaseFragment{

private ;

    /**

    * 所有继承BackHandledFragment的子类都将在这个方法中实现物理Back键按下后的逻辑

    * FragmentActivity捕捉到物理返回键点击事件后会首先询问Fragment是否消费该事件

    * 如果没有Fragment消息时FragmentActivity自己才会消费该事件

    */

    public abstract boolean onBackPressed();

    @Override

    public void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

        if(getActivity()instanceof BackHandleInterface){

this.backHandleInterface = (BackHandleInterface)getActivity();

        }else{

throw new ClassCastException("Hosting Activity must implement BackHandledInterface");

        }

}

@Override

    public void onStart() {

super.onStart();

        backHandleInterface.onSelectedFragment(this);

    }

}

3、在fragment的容器Activity中

        1)声明变量属性

         private ;

        2)activity实现接口(implements BackHandleInterface),重写回调方法

@Override

public void onSelectedFragment(BackHandleFragment backHandleFragment) {

this.backHandleFragment = backHandleFragment;

}

        3)重写onKeyDown()方法

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

//if判断里面就调用了来自Fragment的onBackPressed()

    //一样!!,如果onBackPressed是返回false,就会进入条件内进行默认的操作

    if(backHandleFragment ==null || !backHandleFragment.onBackPressed()){

if(getSupportFragmentManager().getBackStackEntryCount() ==0){

/**

            * 按返回键直接返回桌面,监听返回键,防止按了音量键也返回桌面

            */

            if (keyCode == KeyEvent.KEYCODE_BACK){

Intent intent =new Intent(Intent.ACTION_MAIN);

                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

                intent.addCategory(Intent.CATEGORY_HOME);

                startActivity(intent);

return true;

            }

}

}

return super.onKeyDown(keyCode, event);

}

4、fragment继承自定义fragemnt,重写回调方法onBackPressed()

tip:因为我的项目中fragment是包含整个webview,需求是点击返回后,webview如果可以返回上一个页面就返回上一个页面

@Override

public boolean onBackPressed() {

if (webView.canGoBack()){

webView.goBack();

return true;

    }else {

return false;

    }

}

Ⅱ webview回退时如何保持原滚动位置

第一个,可以用多个WebView的方式实现,但占资源
第二个:点登录界面时,显示B界面,实现B界面是在A网页里面显示的一个层而已,并不是打开了新的网页。

Ⅲ webView页面回退与home回退冲突

webview有缓存啊//设置缓存模式webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);//开启DOMstorageAPI功能webView.getSettings().setDomStorageEnabled(true);这样你就可以在返回前一个页面的时候不刷新了

Ⅳ android 怎么在webview上加回退按钮

可以使用FrameLayout布局,在webView上放置按钮

Ⅳ jsp 用户退出登录回退时网页过期

当退出时候,已经清空了session,但是当点击IE后退按钮时候,还能回去查看刚才页面

设置退出系统再点后退就显示页面过期的方法

可以设置回退时显示网页过期
这里用jsp来举例:
第一种,在jsp中加入如下代码:
<%
//设置无缓存
response.setHeader("progma","no-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
%>
在html里面也可以加入
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">

第二种:
<script language='javascript'>
history.go(1);
</script>