使用JS調(diào)用工控機(Windows)虛擬鍵盤
1. 需求背景
在工控機觸摸屏中,通過瀏覽器web端進行表單輸入,當聚焦表單輸入框并不會出現(xiàn)虛擬鍵盤進行輸入。
解決方式:
- 使用第三方npm虛擬鍵盤插件引入使用
- 使用js調(diào)用系統(tǒng)自帶的虛擬鍵盤
- 使用快捷鍵Win+Ctrl+O打開關(guān)閉
本文介紹下第二種方式進行操作。
2. 實現(xiàn)方式
在網(wǎng)頁中通過js調(diào)用Windows上本地的exe程序,通過修改 Windows 注冊表來使用 window.open 打開鍵盤,實際上是在設(shè)置一個自定義的 URL 協(xié)議(如 "keyboardProtocol")與鍵盤應(yīng)用程序(通常是系統(tǒng)自帶的屏幕鍵盤)相關(guān)聯(lián)。當用戶在網(wǎng)頁中點擊一個鏈接或使用 JavaScript 打開一個 "keyboardProtocol" URL 時,這將觸發(fā)屏幕鍵盤的打開。
- 找出虛擬鍵盤的可執(zhí)行文件路徑,如:
C:\Windows\system32\osk.exe - 編寫注冊文件reg文件
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\keyboard] // 定義自定義 URL 協(xié)議的關(guān)鍵部分 @="keyboardProtocol" // 自定義的 URL 協(xié)議名稱 "URL Protocol"="keyboardProtocol" // 確保了系統(tǒng)知道這是一個自定義協(xié)議 [HKEY_CLASSES_ROOT\keyboard\DefaultIcon] // 定義了當用戶在資源管理器或文件瀏覽器中雙擊與 "keyboardProtocol" 相關(guān)聯(lián)的文件時顯示的圖標 @="C:\\windows\\system32\\osk.exe" // 屏幕鍵盤應(yīng)用程序的路徑 [HKEY_CLASSES_ROOT\keyboard\shell] // 定義了如何與該協(xié)議交互 [HKEY_CLASSES_ROOT\keyboard\shell\open] // 定義了當用戶右鍵點擊與 "keyboardProtocol" 相關(guān)聯(lián)的文件或文件夾并選擇“打開”時發(fā)生的行為 [HKEY_CLASSES_ROOT\keyboard\shell\open\command] // 定義了如何執(zhí)行與 "open" 操作相關(guān)聯(lián)的操作 @="\"C:\\windows\\system32\\osk.exe\""
- 雙擊執(zhí)行
- js中調(diào)用
// 方法一
window.location.href="keyboard://" rel="external nofollow" rel="external nofollow" ;
//or
window.open("keyboard://");
</script>
<!-- 方法二-->
<a href="keyboard://" rel="external nofollow" rel="external nofollow" >打開應(yīng)用程序</a>
3. 總結(jié)
該方法依賴于Windows系統(tǒng)自帶的虛擬鍵盤,不適用于其他操作系統(tǒng)。
提供了一種通過JavaScript調(diào)用Windows系統(tǒng)自帶的虛擬鍵盤的方法,解決在工控機觸摸屏的web瀏覽器中進行表單輸入時調(diào)用虛擬鍵盤的問題。
以上就是使用JS調(diào)用工控機(Windows)虛擬鍵盤的詳細內(nèi)容,更多關(guān)于JS調(diào)用Windows虛擬鍵盤的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
javascript:history.go()和History.back()的區(qū)別及應(yīng)用
為提高用戶體驗度,可能會使用到刷新 前進 后退等相關(guān)更能,本文將以此問題詳細介紹javascript:history.go()和History.back()的區(qū)別及應(yīng)用,需要的朋友可以參考下2012-11-11
使用ionic(選項卡欄tab) icon(圖標) ionic上拉菜單(ActionSheet) 實現(xiàn)通訊錄界面切換實例
這篇文章主要介紹了使用ionic(選項卡欄tab) icon(圖標) ionic上拉菜單(ActionSheet) 實現(xiàn)通訊錄界面切換實例代碼,需要的朋友可以參考下2017-10-10
Firefox+FireBug使JQuery的學習更加輕松愉快
FireBug是FireFox下最強大的調(diào)試插件.利用它,可以讓JQuery的學習過程更加輕松愉快.2010-01-01
用循環(huán)或if語句從json中取數(shù)據(jù)示例
倘若想將id和pid數(shù)據(jù)依次取出,就只能用循環(huán),若想有選擇性的輸出時,需要添加if條件2014-08-08
AngularJs+Bootstrap實現(xiàn)漂亮的計算器
這篇文章主要為大家詳細介紹了angularJs+Bootstrap實現(xiàn)漂亮的計算器,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08

