本發(fā)明涉及計算機技術,特別涉及一種信息輸入方法和裝置。
背景技術:
移動端應用APP中經(jīng)常會在應用頁面上設置一些輸入框,例如,指示用戶輸入密碼的輸入框,或者輸入轉(zhuǎn)賬金額的輸入框。在向輸入框輸入信息時,可以采用應用自定義的輸入鍵盤,比如,應用可以監(jiān)聽輸入框的聚焦focus事件,并在事件發(fā)生時顯示該輸入鍵盤,以使得用戶通過點擊該鍵盤輸入信息,應用可以將信息同步到輸入框中。這種向輸入框輸入信息的方式,在應用頁面較為復雜時,容易出現(xiàn)焦點混亂的現(xiàn)象,比如,在向網(wǎng)頁中的輸入框輸入信息時,用鼠標點了下輸入框,輸入框會有一個光標閃動,這就相當于焦點,有光標閃爍時表示可以向該輸入框輸入內(nèi)容;但是當向輸入框進行輸入時,有時會出現(xiàn)焦點突然消失,導致無法向輸入框輸入成功,即未輸入進去,需要重復執(zhí)行輸入操作多次,比如可以再點擊一次輸入框使得焦點出現(xiàn),直至完成輸入。
技術實現(xiàn)要素:
有鑒于此,本發(fā)明提供一種信息輸入方法和裝置,以保證有效輸入信息。
具體地,本發(fā)明是通過如下技術方案實現(xiàn)的:
第一方面,提供一種信息輸入方法,所述方法包括:
獲取頁面輸入框的屬性信息,所述頁面輸入框位于移動端應用的前端頁面;
根據(jù)所述屬性信息,創(chuàng)建具有所述屬性信息的原生輸入框,所述原生輸入框在Native層創(chuàng)建;
將用戶通過所述原生輸入框輸入的信息,回填至所述頁面輸入框。
第二方面,提供一種信息輸入裝置,所述裝置包括:
屬性獲取模塊,用于獲取頁面輸入框的屬性信息,所述頁面輸入框位于移動端應用的前端頁面;
輸入處理模塊,用于根據(jù)所述屬性信息,創(chuàng)建具有所述屬性信息的原生輸入框,所述原生輸入框在Native層創(chuàng)建;
信息同步模塊,用于將用戶通過所述原生輸入框輸入的信息,回填至所述頁面輸入框。
本發(fā)明實施例的信息輸入方法和裝置,通過采用了在Native層面創(chuàng)建的原生輸入框輸入信息,再將輸入的信息回填至前端頁面,這種方式由于用于輸入信息的輸入框是在Native層面生成,使得向該輸入框輸入信息時就不會出現(xiàn)在web頁面中出現(xiàn)的焦點混亂問題,從而保證快速有效的輸入信息。
附圖說明
圖1為本發(fā)明實施例提供的一種信息輸入方法的流程圖;
圖2為本發(fā)明實施例提供的另一種信息輸入方法的流程圖;
圖3為本發(fā)明實施例提供的又一種信息輸入方法的流程圖;
圖4為本發(fā)明實施例提供的信息輸入的過程示意圖;
圖5為本發(fā)明實施例提供的又一種信息輸入方法的流程圖;
圖6為本發(fā)明實施例提供的一種信息輸入裝置的結構示意圖。
具體實施方式
移動端應用通常會包括很多應用頁面,其中一種類型的頁面是通過webview控件展示的web頁面(也可以稱為前端頁面);在web頁面中,根據(jù)業(yè)務需要有時會設置一些輸入框,比如,輸入密碼的輸入框,或者輸入轉(zhuǎn)賬金額的輸入框等,可以通過webkit渲染得到該輸入框。但是,在通過這種方式的輸入框輸入信息時,容易出現(xiàn)焦點混亂的現(xiàn)象,影響輸入效率,不能快速有效的輸入信息?;诖?,本申請實施例提供了一種信息輸入方法,以解決上述問題。
圖1示例了本申請實施例提供的信息輸入方法的流程圖,可以包括:
在步驟101中,獲取頁面輸入框的屬性信息,所述頁面輸入框位于移動端應用的前端頁面。
例如,本例子中可以將位于webview頁面上的輸入框,稱為頁面輸入框,用戶可以在頁面輸入框中輸入業(yè)務執(zhí)行所需要的信息;比如,用戶可以在密碼輸入框中輸入轉(zhuǎn)賬時所需要的密碼,或者在金額輸入框中輸入轉(zhuǎn)賬時所需要的轉(zhuǎn)賬金額。
輸入框的屬性信息,例如,可以包括:輸入框在前端頁面中的顯示位置、或者輸入框的外觀參數(shù)。該外觀參數(shù)可以包括:輸入框的寬度、高度、顏色、框中限定輸入的字體,等。本實施例中,所獲取的輸入框的屬性信息可以是頁面輸入框的全部或部分屬性。
在步驟102中,根據(jù)所述屬性信息,創(chuàng)建具有所述屬性信息的原生輸入框。
本步驟中,根據(jù)在步驟101中獲取到的屬性信息,可以繪制一個原生輸入框,該原生輸入框具有所述屬性信息,比如,繪制的原生輸入框與前端頁面的頁面輸入框具有相同的寬度和高度,原生輸入框和頁面輸入框可以具有相同的框類型,比如,可以都是密碼輸入框。該原生輸入框在Native層創(chuàng)建,其中,在Native層創(chuàng)建是基于智能手機本地操作系統(tǒng)如iOS、Android等,并使用原生程式編寫運行的程序,比如,在iOS系統(tǒng)中,可以使用objective-C創(chuàng)建所述原生輸入框。
在步驟103中,將用戶通過所述原生輸入框輸入的信息,回填至所述頁面輸入框。
本步驟中,可以通過調(diào)用相應的數(shù)據(jù)回填事件,比如,keyup、keydown等,將在原生輸入框中輸入的信息,回填至頁面輸入框中,使得輸入的信息回填到前端頁面中,完成信息輸入。此外,本例子可以不限制向原生輸入框輸入信息的方式,比如,可以通過鍵盤輸入、語音輸入等。
本例子的信息輸入方法中,通過采用了在Native層面創(chuàng)建的原生輸入框輸入信息,再將輸入的信息回填至前端頁面,這種方式由于用于輸入信息的輸入框是在Native層面生成,使得向該輸入框輸入信息時就不會出現(xiàn)在web頁面中出現(xiàn)的焦點混亂問題(比如,該混亂問題可能由webkit缺陷或者web頁面中復雜的頁面邏輯導致),從而保證快速有效的輸入信息。
在另一個例子中,為了使得用戶不感知原生輸入框,使用戶仍然感覺是在用原來的前端頁面中的輸入框輸入信息,提高用戶使用體驗,本申請實施例在創(chuàng)建原生輸入框時,可以盡量保證原生輸入框與頁面輸入框的一致性。參見圖2示例的信息輸入的流程,可以包括:
在步驟201中,獲取頁面輸入框的屬性信息。
例如,本步驟中獲取的屬性信息可以包括:頁面輸入框在前端頁面的顯示位置和外觀參數(shù),比如,該外觀參數(shù)可以包括:頁面輸入框的寬度高度、頁面輸入框的字體、字體顏色等。
在步驟202中,根據(jù)所述屬性信息,創(chuàng)建具有所述屬性信息的原生輸入框。
比如,創(chuàng)建的原生輸入框具有與頁面輸入框相同的寬度高度、且輸入信息的字體和字體顏色都可以相同。
在步驟203中,將原生輸入框覆蓋對應的頁面輸入框顯示。
比如,可以根據(jù)頁面輸入框的顯示位置,將原生輸入框也顯示在該顯示位置,這樣用戶就以為是在頁面輸入框中輸入信息,對原生輸入框無感知。
在步驟204中,將用戶通過原生輸入框輸入的信息,回填至頁面輸入框。
在又一個例子中,在Native層面創(chuàng)建的原生輸入框,還有一個重要特點是可以受到控制,比如,可以控制原生輸入框輸入信息的格式、可以對原生輸入框輸入的信息進行加密等;而在web頁面中通過webkit渲染的輸入框則不受控制,比如,只能使用操作系統(tǒng)的默認系統(tǒng)鍵盤輸入,且輸入過程也不受控制。本申請實施例充分利用原生輸入框的上述特點,可以進行信息輸入格式的設計,以保證信息輸入的有效性,還可以對輸入信息進行加密,以提高信息輸入的安全性。如下的圖3所示實施例將描述該例子的信息輸入方法,不過,對信息輸入格式的限制以及信息的加密,也可以將其中一項應用于原生輸入框,圖3的例子將描述同時應用這兩項的例子。
在步驟301中,獲取頁面輸入框的屬性信息,其中包括輸入框的框類型。
其中,所述框類型用于表示所述頁面輸入框限定接收的信息類型,比如,框類型如果是用于輸入轉(zhuǎn)賬金額的金額輸入框,則可以限定輸入的信息類型只能是數(shù)字,而不能是abc等字母。
在步驟302中,根據(jù)所述屬性信息,創(chuàng)建具有所述屬性信息的原生輸入框,該原生輸入框與頁面輸入框具有相同的框類型。
例如,如果頁面輸入框是一個用于輸入轉(zhuǎn)賬金額的金額輸入框,那么對應創(chuàng)建的原生輸入框也是金額輸入框;如果頁面輸入框是一個用于輸入轉(zhuǎn)賬密碼的密碼輸入框,對應創(chuàng)建的原生輸入框也是密碼輸入框。
在步驟303中,在檢測到用戶點擊輸入原生輸入框時,提供與所述框類型對應的輸入鍵盤,并接收通過所述輸入鍵盤輸入的信息。
本例子中,可以定義幾種與框類型對應的輸入鍵盤,比如,如果框類型是密碼輸入框,則對應提供密碼輸入鍵盤,該密碼輸入鍵盤限定只能輸入密碼;如果框類型是金額輸入框,則對應提供金額輸入鍵盤,該金額輸入鍵盤限定只能輸入金額,不能輸入abc等字母。通過這種方式,可以有效限定向輸入框中輸入信息的格式,保證信息輸入的有效性。
在步驟304中,將用戶通過輸入鍵盤向原生輸入框輸入的信息進行加密。
例如,當所述信息類型是密碼,且所述輸入鍵盤是密碼鍵盤時,可以將用戶通過所述輸入鍵盤輸入的信息進行加密。當然,其他類型的鍵盤,可以根據(jù)業(yè)務需求設定是否對輸入信息進行加密。
在步驟305中,將加密后的輸入信息,回填至頁面輸入框。
如下描述一個應用本申請的方法進行輸入框的信息輸入的例子:
如圖4所示,前端頁面(例如,該頁面可以是webview頁面)上有兩個指示用戶輸入“轉(zhuǎn)賬金額”和“交易密碼”的輸入框(例如,該輸入框可以是通過webkit渲染得到的輸入框),可以將這兩個輸入框稱為頁面輸入框。下面的過程將通過執(zhí)行本例子的方法向這兩個頁面輸入框中輸入對應的信息,例如,轉(zhuǎn)賬金額和密碼。結合圖5所示,圖5示例了本實施例的信息輸入方法的流程,該方法可以由信息輸入裝置執(zhí)行,該裝置可以監(jiān)控應用的運行并執(zhí)行該方法,包括:
在步驟501中,在檢測到頁面輸入框所在的前端頁面打開時,獲取頁面輸入框的屬性信息。
例如,用戶打開應用APP,并點擊進入應用頁面,該應用頁面可以是圖4中示例的包括金額和密碼等頁面輸入框的前端頁面。本實施例中的信息輸入裝置在監(jiān)測到頁面打開時,可以獲取頁面輸入框的屬性信息,比如,可以包括:輸入框的顯示位置、輸入框的寬度、高度、顏色等外觀參數(shù)。
本例子中,頁面輸入框的屬性信息,還可以包括:頁面輸入框的框類型,所述框類型用于表示頁面輸入框限定接收的信息類型。例如,仍以圖4為例,兩個頁面輸入框的框類型包括:一個是金額類型,在該輸入框中只能接收“100”、“200”等這種金額的輸入信息,而不能接收“*#”、“abc”等非金額信息;另一個是密碼類型,該輸入框中只能接收能夠作為密碼的信息。本實施例在收集頁面輸入框的屬性信息時,不僅收集位置、寬度高度等信息,還收集上述的框類型信息。
在步驟502中,根據(jù)所述屬性信息,創(chuàng)建具有所述屬性信息的原生輸入框,并將所述原生輸入框覆蓋對應的所述頁面輸入框顯示。
結合圖4所示,本實施例創(chuàng)建了對應頁面輸入框的原生輸入框,比如,框21是對應原始應用頁面中的“轉(zhuǎn)賬金額”的原生輸入框,框22是對應原始應用頁面中的“交易密碼”的原生輸入框。原生輸入框在創(chuàng)建時具有與對應的頁面輸入框相同的框類型。并且,原生輸入框可以覆蓋對應的頁面輸入框顯示,例如圖4所示,即將原生輸入框疊加在頁面輸入框上,使得用戶看到的是原生輸入框而非頁面輸入框,并且用戶在點擊輸入時也只能點擊原生輸入框。
在步驟503中,在檢測到用戶點擊原生輸入框時,根據(jù)原生輸入框的框類型,彈出與框類型對應的輸入鍵盤,以供用戶輸入信息。
本例子中,當信息輸入裝置檢測到用戶點擊了原生輸入框時,表明用戶此時要輸入信息,則彈出鍵盤。其中,該輸入鍵盤是與用戶點擊的原生輸入框的框類型對應的鍵盤。
例如,假設原生輸入框是“轉(zhuǎn)賬金額”對應的輸入框,則可以彈出與框類型“金額”對應的金額鍵盤;或者,當原生輸入框是“交易密碼”對應的輸入框,則可以彈出與框類型“密碼”對應的密碼鍵盤;又或者,在其他應用場景中,還可以彈出數(shù)字鍵盤、字符鍵盤等,本例子可以定義多種類型的鍵盤,并在對應類型的原生輸入框被點擊時彈出。
通過提供與框類型對應的輸入鍵盤供用戶輸入信息,可以用以限定輸入的信息是框類型所限定的信息類型,使得用戶不能隨意輸入任何格式的信息,而只能輸入框類型限定的有效信息,從而方便控制輸入數(shù)據(jù)的有效性。
在步驟504中,將用戶通過輸入鍵盤得到的信息,回填至頁面輸入框。
例如,在向頁面輸入框回填同步輸入的信息時,可以模擬回調(diào)相應的事件,比如,keydown,keyup等,使得信息回填到頁面輸入框。其中,當信息類型是密碼,輸入鍵盤是密碼鍵盤時,還可以將用戶通過鍵盤得到的信息(比如,用戶通過鍵盤敲擊了abc123作為密碼,則abc123即為通過鍵盤得到的信息)進行加密后,回填至頁面輸入框,以保證密碼輸入的安全。
本例子的信息輸入方法中,通過采用在Native端開發(fā)的原生輸入框和輸入鍵盤進行向前端頁面輸入框的信息輸入,使得通過原生輸入框和輸入鍵盤輸入信息時不會對應用頁面產(chǎn)生影響,從而不會出現(xiàn)焦點混亂等現(xiàn)象的發(fā)生,保證有效輸入信息;并且,Native端開發(fā)的原生輸入框和輸入鍵盤的可控性增強,比如,原生輸入框是一個在Native端開發(fā)的控件,可以控制對原生輸入框中的信息進行加密,進一步增強信息輸入的安全性。
圖6示例了一種信息輸入裝置,該裝置可以執(zhí)行本申請實施例的方法。如圖6所示,該裝置可以包括:屬性獲取模塊61、輸入處理模塊62和信息同步模塊63。其中,
屬性獲取模塊61,用于獲取頁面輸入框的屬性信息,所述頁面輸入框位于移動端應用的前端頁面;
輸入處理模塊62,用于根據(jù)所述屬性信息,創(chuàng)建具有所述屬性信息的原生輸入框,所述原生輸入框在Native層創(chuàng)建;
信息同步模塊63,用于將用戶通過所述原生輸入框輸入的信息,回填至所述頁面輸入框。
在一個例子中,屬性獲取模塊61,具體用于在檢測到所述頁面輸入框所在的前端頁面打開時,執(zhí)行獲取頁面輸入框的屬性信息。
在一個例子中,輸入處理模塊62,具體用于根據(jù)頁面輸入框的顯示位置和外觀參數(shù),創(chuàng)建所述原生輸入框,且使得所述原生輸入框覆蓋對應的所述頁面輸入框顯示。
在一個例子中,所述屬性信息,包括:所述頁面輸入框的框類型,對應所述頁面輸入框的原生輸入框具有相同的框類型。輸入處理模塊62,還用于根據(jù)所述原生輸入框的框類型,提供與所述框類型對應的輸入鍵盤,所述輸入鍵盤限定輸入所述信息類型的信息。
在一個例子中,信息同步模塊63,還用于:當所述信息類型是密碼,且所述輸入鍵盤是密碼鍵盤時,將用戶通過所述輸入鍵盤輸入的信息進行加密后,回填至所述頁面輸入框。
本申請實施例的裝置的功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本申請的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺設備執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內(nèi)。