0

我有一個webapp我想與android界面。使用webview顯示頁面非常簡單,但頁面使用屏幕鍵盤。如果只有一個輸入是一個頁面,它會很容易設置Android的webView touchEvents

android:focusableInTouchMode="false" 

在web視圖,但也有少數地方多個輸入都存在,這將禁用選擇任何他們的能力(第一自動選擇頁面上的一個)。

它會工作,也許擴展和重寫一個webView,以便能夠選擇一個輸入,但不能打開softKeyboard?

我也看過 this example,但我不認爲這將與webview工作。

編輯:

爲了澄清,我可以只是myWebView.setOnTouchListener(...)覆蓋,並在測試這樣做,這是偉大的,因爲它不允許softKeyboard顯示,但它也不會讓其他事情發生,即。輸入選擇。理想情況下,除了softKeyboard出現之外,所有事情都會發生,這是一個快樂的媒介。 (是的,我已經嘗試過其他方法,如

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
+0

你是說如果你設置了'android:focusableInTouchMode =「false」',那麼這將禁止在WebView中導航基於HTML的控件的能力* –

+0

不,它使整個webview不可聚焦,因此係統不會對基於html的字段作出響應。它仍然是可導航的,因爲裏面的控件是javascript。 – Nagaka

回答

0

我覺得我的問題是,因爲我是在我的機智幾個小時的尋找到這之後結束有些模糊。

我的最終目標是能夠使用帶有多個輸入字段的屏幕鍵盤顯示網頁問題是,只要焦點位於輸入字段上,就會顯示android softKeyboard

我嘗試了多種解決方法,其中一個問題未列出因爲我無法選擇任何輸入,因爲觸摸命令未被註冊。

我試着重寫onTouch,但鍵盤顯示在「向上」觸摸之後,因此不可能有默認行爲,仍然攔截並禁用鍵盤。

爲我的問題工作的解決方案是擴展WebView類,然後重寫'onCreateInputConnection'。這是android解釋html輸入字段的「類型」的地方。問題是,html沒有這種類型的'null'類型,所以android總是會根據輸入類型顯示某種鍵盤。然而,Android有一個空輸入類型,它告訴鍵盤在這裏不需要輸入。

@Override 
public InputConnection onCreateInputConnection(EditorInfo outAttrs) { 
    BaseInputConnection fic = new BaseInputConnection(this, true); 
    outAttrs.actionLabel = null; 
    outAttrs.inputType = InputType.TYPE_NULL; 
    return fic; 
} 

這種重寫方法是我的webview所需的全部功能,可以完全禁用所有文本字段上的輸入。

注意:這也會禁用附加的硬件鍵盤輸入...在我的情況下不是問題,但是我會有興趣瞭解那裏的工作。