0
我在創建WebView的活動中存在KeyCodes問題&加載了一個URL。我注意到,當我按下鍵盤上的按鍵或紅外遙控器上的按鈕時,它不會調用WebView中的onKeyDown()方法。我猜它直接調用底層JavaScript(只要正確的鍵碼被傳遞,這是很好的)WebView和KeyEvents
我遇到的問題是我的紅外遙控器上的一些鍵被傳遞爲0(如Guide,Info,這些彩色按鈕全部用於播放相關選項)。但是,有些鍵可以工作(如數字按鈕)。任何想法keyCodes被劫持?我檢查了EventHub & InputDispatcher,他們似乎有正確的代碼。我是否需要在鉻/ android_webview代碼庫中檢查某處?下面是我用什麼樣的一個片段:
private class myWV extends WebView
{
public myWV(Context context)
{
super(context);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
Log.e("myWV", "onKeyDown: " +keyCode);
return super.onKeyDown(keyCode, event);
}
}
@Override
public void onCreate(Bundle icicle)
{
Log.d(TAG, "onCreate");
Toast.makeText(getApplicationContext(), "Please wait while we look for available TV channels...", Toast.LENGTH_LONG).show();
super.onCreate(icicle);
mWebView = new myWV(this);
mWebView.setWebViewClient(new WebViewClient());
mWebView.setWebChromeClient(new WebChromeClient());
Log.e(TAG, "onCreate: Calling setJavaScriptEnabled");
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl(mURL);
// Enable the view
setContentView(mWebView);
}
希望任何提示
檢查WebView.onKeyDown的文檔 - 它提到:'不要依賴這個來捕捉軟件按鍵。「http://developer.android.com/ reference/android/webkit/WebView.html – donfuxx
您正在使用哪個API級別或Android版本?據我所知,4.0和4.1/4.2在處理各種事件方面略有差異,而4.1/4.2和4.4之間有很大的差異,因爲後來切換到Chromium Webkit引擎。 –
@Wie WANG,我在4.4.2上。我所知道的是,當用於簡單的Activity(非基於WebView的)時,這些遠程鍵代碼工作得很好。不知何故,在這個應用程序,他們正在重新解釋(也許在鉻的web視圖?)。任何想法,我可以把一些打印進一步檢查? –