欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Android webview 填坑记录

程序员文章站 2022-11-02 11:01:40
Android调用前端//textNew JS前端方法名,tempStr传递参数 webView.post(()->{ webView.evaluateJavascript("textNew('"+tempStr+"')", value -> { }); });在传递参数的时候一定注意,给tempStr包裹上单引号,不加单引号,前端只能识...

Android调用前端

				//textNew JS前端方法名,tempStr传递参数
                webView.post(()->{
                    webView.evaluateJavascript("textNew('"+tempStr+"')", value -> {

                    });
                });

在传递参数的时候一定注意,给tempStr包裹上单引号,不加单引号,前端只能识别数字,传递其他字符串的时候,前端会报错。

webview软键盘适配

webview由于高度无法计算,所以不能使用常规方式解决这个问题(之前一直是在父布局加滑动完成软键盘顶起布局),只能另谋他路。

一些常规的方法在manifest对应activity加windowSoftInputMode都是没有效果的。首先我想到了一个最简单的办法来解决,就是直接给webview的父布局加上fitsSystemWindows属性可以解决

android:fitsSystemWindows="true"

但是后续发现它会挤压webview,因为我现在的需求是需要一边输入一边看webview的内容,但是挤压之后导致我的页面关键部分被挤压。

Android webview 填坑记录

这是正常未开软键盘的界面

Android webview 填坑记录
打开软键盘后我中间需要看到的文字部分就被遮挡了

后面试过很多方法之后发现webview都会挤压,所以就直接放弃了软键盘适配(有好的解决办法的可以评论一波)

直接写了一个只有输入框的dialog,dialog打开的时候直接自动打开软件盘就不会出现遮挡的问题,需求就完美解决了。

上效果图
Android webview 填坑记录
后续还需要研究研究webview的软件盘适配,因需求着急,就只能这样解决了

  • 遇到问题在更新了

本文地址:https://blog.csdn.net/qq_42699694/article/details/107316657