OpenHarmony替換系統軟鍵盤_kikakeyboard
前言
替換系統軟鍵盤基本是基于社區提供的kikaInput二次開發實現,目前kikaInput根據系統版本的不同發布了很多相對應的版本,在二次開發時可以根據自己的需要選擇合適的版本進行修改。
kikakeyboard 適配PAD
效果
適配前 | 適配后 |
|
|
設備類型適配
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的位置
步驟2:修改打包簽名配置
在SDK的lib中中查找到UnsgnedReleasedProfileTemplate.json文件
替換以下關鍵信息
- distribution-certificate:cer簽名配置
- bundle-name:應用包名
- app-feature:應用級別-ohos_system_app:系統應用
- allowed-acls:權限
步驟3:自動簽名
步驟4:獲取指紋信息
在DevEco Studio 中打開Log 界面,選擇HiLog 過濾 “finger” 字符。
進入系統Shell命令行 ,設置Hilog 等級。
單擊Run > Run ‘{模塊名稱}’ 運行工程中任意HAP包。在運行時會進行HAP包的安裝,此時有可能安裝不成功報錯,是因為我們應用未正確配置導致,但此時我們目的為獲取指紋信息,忽略錯誤。
查看DevEco Studio 的Log 界面,指紋信息已經被打印出來。
假設我們獲取到的指紋信息: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
修改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
執行下面腳本:
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