本發(fā)明涉及移動終端與互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體涉及一種移動終端跨平臺的安全鍵盤實現(xiàn)方法。
背景技術(shù):
隨著移動支付的快速普及,如何保障用戶信息安全這個問題變得越來越重要。在支付、金融、個人信息敏感的系統(tǒng)中,用戶的重要個人信息,如支付密碼、身份證號等需要優(yōu)先考慮進行安全保護。
而系統(tǒng)默認(rèn)的鍵盤輸入,可被惡意軟件記錄并推算出用戶的輸入值,從而使敏感信息泄露,造成重大損失。因此,在輸入敏感信息時放棄第三方輸入法,實現(xiàn)自定義的輸入鍵盤,就可以避開很多安全隱患。
安全鍵盤有自繪固定鍵盤和自繪隨機鍵盤兩種,單純從鍵盤的安全性來分析,自繪隨機鍵盤同自繪固定鍵盤的安全級別都是比較高的,相比之下,自繪隨機鍵盤更安全一些。自繪固定鍵盤可以避免被第三方輸入法監(jiān)聽的風(fēng)險,但對鍵盤記錄的防御能力依然有限。因為即便黑客無法對輸入法進行監(jiān)聽,也能夠通過其他方式從后臺監(jiān)控到鍵盤位置的輸入記錄,如果密碼位置是固定的,那么在輸入過后,黑客便能夠通過監(jiān)控到的位置反饋數(shù)據(jù)猜到你的密碼。
而之所以說自繪隨機鍵盤的安全性更高,是因為在用戶輸入賬號密碼時會生成隨機鍵盤,使每次輸入時點擊的位置都不同。如此一來,就算黑客能夠監(jiān)控到鍵盤記錄,但也會因隨機鍵盤的緣故難以猜測出用戶輸入的內(nèi)容,其安全性自然也大大提升。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是:提出一種移動終端跨平臺的安全鍵盤實現(xiàn)方法,支持跨平臺實現(xiàn)安全鍵盤,同時支持固定鍵盤和隨機鍵盤兩種形式,靈活性強。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種移動終端跨平臺的安全鍵盤實現(xiàn)方法,包括以下步驟:
A、在native端繪制安全鍵盤布局并實現(xiàn)鍵盤基本功能;
B、native端封裝供javascript端調(diào)用native安全鍵盤的方法接口kb1;
C、將步驟A和B中的native端功能和接口封裝成SDK,供應(yīng)用工程使用;
D、javascript端封裝調(diào)用native端SDK中安全鍵盤的接口函數(shù)kb2,用于啟動native端的安全鍵盤;
E、Html頁面生成一個輸入框,綁定輸入框id選擇器的click事件,在事件中調(diào)用步驟D中定義好的接口函數(shù)kb2;
F、javascript端封裝native端回調(diào)javascript的方法kbCallback。
作為進一步優(yōu)化,步驟A具體包括:Android系統(tǒng)用android native對應(yīng)的方法實現(xiàn)安全鍵盤的布局和功能,并提供供javascript調(diào)用的接口;IOS系統(tǒng)用IOS native對應(yīng)的方法實現(xiàn)安全鍵盤的布局和功能,并提供供javascript調(diào)用的接口;Android和IOS對javascript提供的調(diào)用接口,參數(shù)保持一致。
作為進一步優(yōu)化,步驟A中,所述鍵盤基本功能包括:顯示、關(guān)閉、切換。
作為進一步優(yōu)化,步驟A中,native端實現(xiàn)的安全鍵盤包括數(shù)字鍵盤、字母鍵盤和符號鍵盤,字母鍵盤和數(shù)字鍵盤均支持隨機序列和固定序列兩種模式,三種鍵盤可以根據(jù)輸入需求自由切換。
作為進一步優(yōu)化,步驟B中,javascript端通過調(diào)用接口kb1來開啟native繪制的安全鍵盤控件,封裝的接口方法參數(shù)包括Html頁面輸入框的id、鍵盤是否隨機序列的標(biāo)識isRandom、以及唯一回調(diào)標(biāo)識callbackIdentify。
作為進一步優(yōu)化,步驟B具體包括:
B1、在方法接口中調(diào)用native安全鍵盤的實現(xiàn)方法,使鍵盤控件顯示在移動端屏幕底部;
其中,native安全鍵盤顯示時,根據(jù)javascript傳入的鍵盤是否隨機序列的標(biāo)識isRandom來相應(yīng)的選擇是顯示隨機鍵盤還是固定鍵盤;
B2、在方法接口中封裝native回調(diào)javascript的信息,并在鍵盤顯示后,對鍵盤操作時,實時將操作信息通過回調(diào)傳給javascript處理;
所述回調(diào)javascript的信息包括native安全鍵盤的輸入結(jié)果result、javascript傳入的Html頁面輸入框的id、調(diào)用native安全鍵盤是否成功的標(biāo)識isSuccess,
以及唯一回調(diào)標(biāo)識callbackIdentify。
作為進一步優(yōu)化,步驟D具體包括:
D1、根據(jù)回調(diào)callback生成唯一回調(diào)標(biāo)識callbackIdentify;
D2、將回調(diào)標(biāo)識callbackIdentify和回調(diào)callback組成鍵值對寫入Map中;
D3、調(diào)用native端封裝好的接口kb1,其中,傳入?yún)?shù)包括Html頁面輸入框的id、鍵盤是否隨機序列的標(biāo)識isRandom以及唯一回調(diào)標(biāo)識callbackIdentify。
作為進一步優(yōu)化,步驟E中,在調(diào)用kb2時,傳入三個參數(shù),依次為:輸入框的id、鍵盤是否隨機序列顯示的標(biāo)識isRandom、以及調(diào)用結(jié)果回調(diào)callback,callback用于在步驟F中將調(diào)用成功或失敗信息傳回。
作為進一步優(yōu)化,步驟F中,所述方法kbCallback用于當(dāng)native端鍵盤有操作時供native調(diào)用,native將相應(yīng)的安全鍵盤操作結(jié)果封裝成JSON字符串通過kbCallback返回給javascript。
作為進一步優(yōu)化,步驟F具體包括:
F1、解析JSON字符串中的調(diào)用是否成功標(biāo)識isSuccess,isSuccess若為true,則進一步解析JSON字符串中的輸入框id和輸入結(jié)果result兩個字段,并找到id對應(yīng)的輸入框,將輸入結(jié)果result寫入輸入框中顯示,同時執(zhí)行子步驟F2;isSuccess若為false,則執(zhí)行子步驟F2;
F2、解析JSON字符串中的唯一回調(diào)標(biāo)識callbackIdentify,并根據(jù)callbackIdentify在Map中取出鍵值對中的callback,通過callback將成功或失敗信息反饋給輸入框的click事件中。
本發(fā)明的有益效果是:跨平臺實現(xiàn)安全鍵盤,適用于混合型APP中對關(guān)鍵信息輸入保密要求比較高的場合,代碼復(fù)用率高;同時,安全鍵盤支持固定鍵盤和隨機鍵盤兩種形式,用戶可以根據(jù)具體業(yè)務(wù)需要選擇是否鍵盤是否隨機,確保了安全性的同時,又增加了靈活性。
具體實施方式
本發(fā)明旨在提供一種移動端跨平臺的安全鍵盤實現(xiàn)方法,在native端實現(xiàn)安全鍵盤布局和打開、關(guān)閉、切換等基本功能;javascript實現(xiàn)一套異步回調(diào)機制,處理native安全鍵盤和HTML頁面中輸入框元素的交互操作,在指定輸入框的click()事件中通過js調(diào)用native實現(xiàn)的安全鍵盤,并通過js回調(diào)將安全鍵盤的輸入結(jié)果反饋并顯示在HTML頁面的輸入框中。
實施例:
本實施例中的移動端跨平臺的安全鍵盤實現(xiàn)方法包括以下步驟:
步驟一、在native端繪制安全鍵盤布局并實現(xiàn)鍵盤顯示、關(guān)閉、切換等基本功能:
其中,Android系統(tǒng)用android native對應(yīng)的方法實現(xiàn)安全鍵盤的布局和功能,并提供供javascript調(diào)用的接口;IOS系統(tǒng)用IOS native對應(yīng)的方法實現(xiàn)安全鍵盤的布局和功能,并提供供javascript調(diào)用的接口。Android和IOS對javascript提供的調(diào)用接口,參數(shù)保持一致。
相應(yīng)的,native端實現(xiàn)的安全鍵盤包括數(shù)字鍵盤、字母鍵盤和符號鍵盤,字母鍵盤和數(shù)字鍵盤均支持隨機序列和固定序列兩種模式,三種鍵盤可以根據(jù)輸入需求自由切換。
步驟二、native端封裝供javascript調(diào)用native安全鍵盤的方法接口kb1:
其中,javascript端通過調(diào)用此接口來開啟native繪制的安全鍵盤控件。封裝的接口方法參數(shù)包括Html頁面輸入框的id、鍵盤是否隨機序列的標(biāo)識isRandom、以及唯一回調(diào)標(biāo)識callbackIdentify。
在步驟二中,其子流程包括:
a1、在方法接口中調(diào)用native安全鍵盤的實現(xiàn)方法,使鍵盤控件顯示在移動端屏幕底部;
其中,native安全鍵盤顯示時,根據(jù)javascript傳入的鍵盤是否隨機序列的標(biāo)識isRandom來相應(yīng)的選擇是顯示隨機鍵盤還是固定鍵盤。
a2、在方法接口中封裝native回調(diào)javascript的信息,并在鍵盤顯示后,對鍵盤操作時實施將操作信息通過回調(diào)傳給javascript處理。
此信息包括native安全鍵盤的輸入結(jié)果result、javascript傳入的Html頁面輸入框的id、調(diào)用native安全鍵盤是否成功的標(biāo)識isSuccess以及唯一回調(diào)標(biāo)識callbackIdentify。
步驟三、將步驟一和步驟二中的native端功能和接口封裝成SDK,供應(yīng)用工程使用。
步驟四、javascript端封裝調(diào)用native端SDK中安全鍵盤的接口函數(shù)kb2,用于啟動native端的安全鍵盤。
在步驟四中,其子流程包括:
a1、根據(jù)回調(diào)callback生成唯一回調(diào)標(biāo)識callbackIdentify;
a2、將回調(diào)標(biāo)識callbackIdentify和回調(diào)callback組成鍵值對(callbackIdentify,callback)寫入Map中;
a3、調(diào)用native端封裝好的接口kb1,其中,傳入?yún)?shù)包括Html頁面輸入框的id、鍵盤是否隨機序列的標(biāo)識isRandom以及唯一回調(diào)標(biāo)識callbackIdentify。
步驟五、Html頁面生成一個輸入框,綁定輸入框id選擇器的click事件,在事件中調(diào)用步驟四中定義好的接口函數(shù)kb2。
其中,在調(diào)用kb2時,傳入三個參數(shù),依次為:輸入框的id、鍵盤是否隨機序列顯示的標(biāo)識isRandom、以及調(diào)用結(jié)果回調(diào)callback,callback用于在下述步驟六中將調(diào)用成功或失敗信息傳回。
步驟六、javascript端封裝native端回調(diào)javascript的方法kbCallback。
其中,該方法用于當(dāng)native端鍵盤有操作時供native調(diào)用,native將相應(yīng)的安全鍵盤操作結(jié)果封裝成JSON字符串通過kbCallback返回給javascript。
在步驟六中,其子流程包括:
a1、解析JSON字符串中的調(diào)用是否成功標(biāo)識isSuccess,isSuccess若為true,則進一步解析JSON字符串中的輸入框id和輸入結(jié)果result兩個字段,并找到id對應(yīng)的輸入框,將輸入結(jié)果result寫入輸入框中顯示,同時執(zhí)行子步驟a2;isSuccess若為false,則執(zhí)行子步驟a2;
a2、解析JSON字符串中的唯一回調(diào)標(biāo)識callbackIdentify,并根據(jù)callbackIdentify在Map中取出步驟四子步驟a2中存入的(callbackIdentify,callback)鍵值對中的callback,通過callback將子步驟a1中的成功或失敗信息反饋給步驟四中輸入框的click事件中;
如此,便完成了Html頁面通過通過javascript調(diào)用native實現(xiàn)的安全鍵盤的整個流程。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。