fragment下拦截返回键,home键和菜单键的思考

一,需求前提:
网页上有一个挂机任务,当用户点击手机返回键,home键,菜单键,要通知网页,然后进行一系列操作,然后告知客户端下一步操作

二,首先我们知道js 与android相互调用的方式
1,js掉用android方法

①
webView.addJavascriptInterface(new InJsAndroid(), "injs_android");final class InJsAndroid{
   
  @JavascriptInterface
      public void gotoVideo() {
   }
}

2,Android调用js方法

① 不带参数
webView.loadUrl("javascript:onHome()");
② 带参数
webView.loadUrl("javascript:onHome('"+outbox+"')");

所以,想要客户端执行操作告诉网页并有回调,最简单最傻瓜式的操作:先调用网页方法执行 2方法,然后网页一系列操作后执行 1方法返回客户端
三,其次定位挂机任务界面,判断挂机界面 ,只在该界面有拦截,有两种方式
① 网页加载的url中添加特殊字符,在客户端shouldOverrideUrlLoading 方法时,判断一下,加个状态值,当点击返回时就以此值做判断
② 加载网页时加一个新方法,同样记录状态值

我们在前进后退页面时都会执行shouldOverrideUrlLoading方法,这样就可以知道是那个界面了

四,然后设置监听键方式:
打开百度,查到的最多的就是
① onKeyDown()

 @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
   
        return super.onKeyDown(keyCode, event);
    }

可惜 该方法里设置只在activity有用,在fragment中根本没这个方法,而且home和menu对应的 KEYCODE_HOME,KEYCODE_MENU都没作用
② onBackPressed()

@Override
    public void onBackPressed() {
   
        if (webView!= null && webView.canGoBack())
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值