• android WebView交互优化


    安卓的WebView一般是嵌套在activity或者fragment中的,但是如果在这种activity页面上点击返回按钮,一般会finish掉当前activity.其实是应该关闭当前的WebView的界面,回到前一个连接的地址.一般我们使用一下的方法来实现.

    if(webView.canGoback()){//在这里如果无法再往回后退的话,那么就会返回false,那么就可以执行自己的逻辑代码了.

    webView.goBack();

    }

    接下来是Webview界面的一些常用的配置:

    mainWebView.getSettings().setJavaScriptEnabled(true);
    mainWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
    mainWebView.getSettings().setAppCacheEnabled(false);
    mainWebView.getSettings().setSupportZoom(true);
    mainWebView.getSettings().setSaveFormData(false);
    mainWebView.getSettings().setDomStorageEnabled(true);
    mainWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    mainWebView.getSettings().setUseWideViewPort(false);
    mainWebView.setWebViewClient(new WebViewClient() {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if(url.contains("billPaySuccess.jsp")){
      Intent intent = new Intent();
      intent.setClass(getApplicationContext(), OrderPaySucActivity.class);
      intent.putExtra("orderPayBean", orderPayBean);
      startActivity(intent);
      finish();
    }else
      mainWebView.loadUrl(url);
    return true;
    }

    });

    mainWebView.loadUrl(webUrlsl);

    下面是对返回按钮的监听事件:

    public boolean onKeyDown(int keyCode, KeyEvent keyEvent){

      if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_BACK) {
      if (goBackView != null) {
        goBackView.performClick();
      } else
        finish();
     return true;
      }
      return super.onKeyDown(keyCode, event);

    }

    当按下返回键时,如果当前页面存在返回按钮那么相当于点击了返回按钮,如果没有返回按钮的话则finish掉当前页面.这样只在返回按钮的监听器中完成逻辑就可以了.

    补充:

    1.在网上看到网友有介绍下面这个东西的,没测试过怎么样

      关于webview的加载栈,后来发现webview本身也有对应的API

      //获取历史

      WebBackForwardList mWebBackForwardList = webView.copyBackForwardList(); 

    2.该网友的另外一篇关于webview的使用的文章写得不错,可以看看哦

        Android WebView常见问题及解决方案汇总

      http://blog.csdn.net/t12x3456/article/details/13769731

      Android WebView Touch事件及相关问题处理

      http://blog.csdn.net/t12x3456/article/details/17565171

  • 相关阅读:
    iOS TTF文件改变字体
    iOS CoreAnimation 核心动画
    iOS no visible @interface for 'UIButton' declares the selector errors
    iOS 如何通过CocoaPods添加第三方框架
    iOS AVAudioPlayer播放音乐
    iOS 一些常用代码的总结
    iOS 基础
    qworker 实例
    delphi RTTI 反射技术
    delphi IOUtils单元 处理文件路径相关
  • 原文地址:https://www.cnblogs.com/yiludugufei/p/4432203.html
Copyright © 2020-2023  润新知