关于Android4.4以下版本Webview执行LoadUrl加载js导致键盘隐藏的问题(富文本编辑器)

最近由于公司项目在做富文本编辑器使用到了一个开源的项目,这里也给出Github项目地址richeditor-android

关于这个富文本编辑器的具体实现就不多说了,说一个存在的问题,由于富文本编辑器是基于webview通过JS动态添加html的方式实现的,而做android开发而且比较了解webview的人都知道,webview的api更新几个版本之后是各种坑,其中一个是loadurl执行js会收起软键盘,而Android4.4之后是通过evaluateJavascript加载的,这种方式不会导致收起软键盘。如何在低版本手机运行而不收起键盘,我浏览了各种解决方案,其中一个能够实现的是 Cordova android框架详解 所说的通过反射机制解决loadurl导致软键盘隐藏的问题。

下面这段代码是 Cordova中的描述:

private class PrivateApiBridgeMode extends BridgeMode
 
    Field f = webViewClass.getDeclaredField("mProvider");
    f.setAccessible(true);
    webViewObject = f.get(webView);
    webViewClass = webViewObject.getClass();
 
    Field f = webViewClass.getDeclaredField("mWebViewCore");
    f.setAccessible(true);
    webViewCore = f.get(webViewObject);
 
   if (webViewCore != null) {
        sendMessageMethod =       webViewCore.getClass().getDeclaredMethod("sendMessage", Message.class);
       sendMessageMethod.setAccessible(true);  
    }
 
     Message execJsMessage = Message.obtain(null, EXECUTE_JS, url);
     sendMessageMethod.invoke(webViewCore, execJsMessage);

下面放出的demo是经过修改的,解决了这一个问题,同时也添加了一些额外功能,比如加载本地图片,弹出窗口提示删除图片等,有需要可以看看:

CSDN下载地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值