2016-03-13 2 views
0

Я не могу позвонить, чтобы вызвать кнопку «Назад» на Android в WebView. Я попытался с OnKeyDown, OnKey, OnBackPressed Мой текущий код выглядит следующим образом:Событие OnKeyDown в WebView не обрабатывается - Android

public class MainActivity extends AppCompatActivity { 
    final Activity activity = this; 
    private WebView mWebView; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mWebView = (WebView) findViewById(R.id.activity_main_webview); 
     WebSettings webSettings = mWebView.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 
     mWebView.loadUrl("file:///android_asset/index.html"); 

    } 
    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView!=null && mWebView.canGoBack()) { 
      mWebView.goBack(); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

} 

ошибка говорит о том, что функция OnKeyDown не реализована ... Любая идея? Спасибо очень много :)

ответ

1

Попробуйте этот код

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
if (event.getAction() == KeyEvent.ACTION_DOWN) { 
    switch (keyCode) { 
     case KeyEvent.KEYCODE_BACK: 
      if (mWebView.canGoBack()) { 
       mWebView.goBack(); 
      } else { 
       finish(); 
      } 
      return true; 
    } 

} 
return super.onKeyDown(keyCode, event); 
} 

UPDATE: ЕСЛИ ВЫШЕ КОД НЕ ПОПРОБУЙТЕ ЭТО

@Override 
public void onBackPressed() 
{ 

    if (mWebView.canGoBack()) { 
      mWebView.goBack(); 
     } else { 
      finish(); 
     }  
} 
+0

Спасибо, я пытался, но ошибка все еще: Unimplemented метод WebView OnKeyDown вызванный из: android.webkit.WebView.onKeyDown (WebView.java:2178) @salih kallai –

+0

попытаться удалить частный модификатор вашего веб-представления, возможно, будет работать –

+0

То же самое, не могу понять ... –

Смежные вопросы