webview 遇到的坑 ---- 主要是 js 的使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/miao9999/article/details/84565398
  1. 通过调用 js 的一些方法,控制网页的显示状态,以及一些 js 的方法执行网页中的事件,点击事件,焦点事件,移除某个属性、某个方法等

  2. 当需要只显示网页中的一部分,并且不能滑动时

     // 取消webiew的滑动事件,webview不可滑动
     mWebView.setOnTouchListener(new View.OnTouchListener() {
         @Override
         public boolean onTouch(View v, MotionEvent event) {
             return (event.getAction() == MotionEvent.ACTION_MOVE);
         }
     });
    
  3. 遇到的主要的问题是:

    1. 加载完成的回调与显示到页面上在会有时间差 (主要影响截取最终结果的图片,可能会截不全,或是空白页面,现在使用延时截取的方法来避免)

    2. 处理网页中的一些元素,或是要获取网页中的某些值时,只能在页面加载完成后的回调里进行,当再次处理时,处理完成后的回调不确定,没有相关的回调方法

    3. 某些 js 代码需要通过点击事件去触发,直接在onPageFinished() 方法中调用可能会不起做用,还没找到原因和更好解决方法

    4. 向 html 文件中添加一段较长的 thml 代码时,不能直接添加带有格式的 html 代码片断,需要把代码里的一些 “\n”、“\t” 等字符串去掉,同时还要注意单引号与双引用的冲突

    5. 当页面中同时存在 webview 和edittext 时,且webview 网页里有输入框,这时会存在焦点抢占的问题

    6. 截取 webview 全屏时需要设置一个属性,放在 setContentView()之前

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        WebView.enableSlowWholeDocumentDraw();
         }
      

猜你喜欢

转载自blog.csdn.net/miao9999/article/details/84565398