3

OpenHarmony替换系统软键盘_kikakeyboard

 6 months ago
source link: https://www.51cto.com/article/782982.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

OpenHarmony替换系统软键盘_kikakeyboard

作者:徐金生 2024-03-06 09:16:57
PAD设备基本属于横向类型设备,也就是宽度大于高度,在3.2.3 release的版本上已经做了table类型的适配,但是IDE运行时因为应用无法直接安装,所以无法正确的判别设备的类型,会默认返回default类型设备,所以对于PAD的适配只需要修改程序中设置的设备类型即可。
018fd1751dc0af030ba331e3c1a35aca297d9f.png

想了解更多关于开源的内容,请访问:

51CTO 鸿蒙开发者社区

https://ost.51cto.com

替换系统软键盘基本是基于社区提供的kikaInput二次开发实现,目前kikaInput根据系统版本的不同发布了很多相对应的版本,在二次开发时可以根据自己的需要选择合适的版本进行修改。

kikakeyboard 适配PAD

OpenHarmony替换系统软键盘_kikakeyboard -鸿蒙开发者社区
OpenHarmony替换系统软键盘_kikakeyboard -鸿蒙开发者社区
OpenHarmony替换系统软键盘_kikakeyboard -鸿蒙开发者社区
OpenHarmony替换系统软键盘_kikakeyboard -鸿蒙开发者社区

设备类型适配

PAD设备基本属于横向类型设备,也就是宽度大于高度,在3.2.3 release的版本上已经做了table类型的适配,但是IDE运行时因为应用无法直接安装,所以无法正确的判别设备的类型,会默认返回default类型设备,所以对于PAD的适配只需要修改程序中设置的设备类型即可。

  • index.ets
let deviceType = 'tablet'

软键盘高度问题

系统有虚拟操作栏,软键盘从底部弹出,所以底部有些会被虚拟软键盘遮挡。解决方案有两种:
1、长按桌面,进行界面设置,开启手势操作,隐藏虚拟操作栏;
2、修改软键盘弹窗的显示高度,操作步骤

  • KeyboardController
var keyHeightRate = 0.51;

说明:keyHeightRate是一个高度比例,0.51就表示占屏幕高度的51%,可以根据设备的实际情况进行调整。

软键盘程序修改后需要重新安装到设备上,由于软键盘程序属于系统应用,并且有签名限制无法直接通过IDE的 run 安装。如何才能正常的安装上软键盘程序呢?

步骤1:修改签名配置

在IDE设置中查找OpenHarmony SDK的位置

resize,w_820,h_382

步骤2:修改打包签名配置

在SDK的lib中中查找到UnsgnedReleasedProfileTemplate.json文件

resize,w_820,h_328

替换以下关键信息

  • distribution-certificate:cer签名配置
  • bundle-name:应用包名
  • app-feature:应用级别-ohos_system_app:系统应用
  • allowed-acls:权限
resize,w_820,h_614

步骤3:自动签名

resize,w_820,h_821

步骤4:获取指纹信息

在DevEco Studio 中打开Log 界面,选择HiLog 过滤 “finger” 字符。

resize,w_820,h_459

进入系统Shell命令行 ,设置Hilog 等级。

resize,w_570,h_64

单击Run > Run ‘{模块名称}’  运行工程中任意HAP包。在运行时会进行HAP包的安装,此时有可能安装不成功报错,是因为我们应用未正确配置导致,但此时我们目的为获取指纹信息,忽略错误。

resize,w_589,h_298

查看DevEco Studio 的Log 界面,指纹信息已经被打印出来。

resize,w_820,h_158

假设我们获取到的指纹信息:6828322A055D4DDFA07DCCC78586EA97B5D2AD7D8BD1B3CEFE00EF584904D728

以下步骤的前置条件:
  • 设备通过USB连接PC
  • PC端已经配置了hdc的环境变量,这是确保脚本可以正常执行的必要条件

步骤5:备份软键盘程序和安装配置文件

执行下面的脚本会将当前设备上的软键盘程序kikaInput.hap和应用安装配置文件。

  • /com.example.kikakeyboard/kikaInput.hap
  • /app/install_list_capability.json
hdc file recv /system/app/com.example.kikakeyboard
hdc file recv /system/etc/app
pause
resize,w_587,h_155

修改install_list_capability.json中的"bundleName": “com.example.kikakeyboard”,对应的选项,将步骤4中获取到的指纹信息进行替换。

{
            "bundleName": "com.example.kikakeyboard",
            "singleton": true,
            "runningResourcesApply": false,
            "associatedWakeUp": false,
            "app_signature" : ["6828322A055D4DDFA07DCCC78586EA97B5D2AD7D8BD1B3CEFE00EF584904D728"],
            "allowCommonEvent": [],
            "allowAppUsePrivilegeExtension": true
        },

步骤6:删除设备中的软键盘应用包

执行如下脚本:

hdc shell mount -o remount,rw /
hdc shell rm -rf /system/app/com.example.kikakeyboard/kikaInput.hap
hdc shell reboot
pause

步骤7:替换软键盘应用程序

准备好二次开发并且添加签名的安装包:entry-default-signed.hap

准备好步骤5中修改好了安装配置文件:install_list_capability.json

resize,w_516,h_74

执行下面脚本:

hdc shell mount -o remount,rw /
hdc file send install_list_capability.json /system/etc/app/install_list_capability.json
hdc file send entry-default-signed.hap /system/app/com.example.kikakeyboard/kikaInput.hap
hdc shell reboot
pause

执行后设备会自动重启,重启成功后就完成了系统软键盘安装包的替换。

备注:步骤6、7可以合并,这样可以减少一次设备重启,但是实践测试发现,步骤6删除旧的软键盘安装包后不重启,步骤7无法执行成功,所以这里进行分开执行。

为了方便执行步骤5~步骤7,相关的脚本已经添加在附件中,解压就可以使用。

文章相关附件可以点击下面的原文链接前往下载:

https://ost.51cto.com/resource/3105

想了解更多关于开源的内容,请访问:

51CTO 鸿蒙开发者社区

https://ost.51cto.com

责任编辑:jianghua 来源: 51CTO 鸿蒙开发者社区

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK