1

로컬 파일을 표시하는 WebView 주변의 래퍼 인 Android 앱이 있습니다. setContentView (thewebview)가 호출되기 때문에 WebView가 이벤트를 가져옵니다. 이것은 대부분의 경우 잘 작동합니다 (온라인 버전에서 Android Webkit Browser도 처리하기 때문에).Android Web App에서 D-Pad/Trackball 이벤트 잡기

문제는 D-Pad/Trackball 이벤트에 대한 지원을 추가하려고합니다. 적절한 onKeyDown을 작성했지만 WebView는 활동이 아닌 이벤트를 소비합니다.

이 두 가지 방법으로 해결할 수 있습니다 :

  1. 는 D-패드 아래/위/등의 이벤트 키 코드를 처리합니다. 자바 스크립트 onKeyDown 함수에서
  2. webview가 키 이벤트를 가져 오기 전에 appriopriate 키 이벤트를 가져와 사용하십시오. (당연히 모든 사건은 얻을 수 있고, 최대량은 단순히 소모되지 않을 것이다)

문제는 나 역시 그 방법을 모른다. 이것을 어떻게하거나 다른 방식으로 해결할 수 있습니까?

답변

2

View.setOnKeyListener()을 사용하여 WebView의 키 누르기를 단순히 'catch'하여 KeyEvents를 처리합니다. 키가이 관점에서 누르면

콜백 등록

공개 무효 setOnKeyListener (View.OnKeyListener 리터)를 호출한다.

thewebview.setOnKeyListener(new OnKeyListener() 
{ 
    @Override 
    public boolean onKey(View v, int keyCode, KeyEvent event) 
    { 
     // do your stuff here 
    } 
}); 
: 다음과 같이 사용되는 당신의 예에서

관련 문제