Как использовать кнопку "Назад", чтобы вернуться с XWalkView CrossWalk, или отключить его?
Я использую приведенный ниже код, чтобы вернуться в веб-просмотр с первой попытки. Но для низкой возможности рендеринга я использовал XWalkView вместо WebView.
public boolean onKeyDown(int keyCode, KeyEvent event) {
WebView mWebView = (WebView) findViewById(R.id.webview);
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if (mWebView.canGoBack()) {
mWebView.goBack();
} else {
finish();
if (MainActivity.mTencent.isSessionValid()) {
MainActivity.logout();
}
}
return true;
}
}
return super.onKeyDown(keyCode, event);
}
Когда я переключаюсь на XWalkView, я нахожу это только в XWalkView. Но я не могу найти пример, чтобы использовать его. Когда я не реализую кнопку возврата, приложение закроется после того, как я дважды нажму кнопку возврата.
Мой вопрос: 1. Как использовать go back в XWalkView, если какой-то код может быть более полезным. 2. Как отключить событие нажатия кнопки "Назад", если я не использую функцию возврата назад.
Заранее спасибо.
2 ответа
После нескольких дней копания я решил это: поместите это в упражнение xwalkview. Хотя это работает, но возвращение иногда теряет некоторую историю. Поэтому я также хочу, чтобы кто-то дал лучший ответ здесь.
для возврата:
public boolean onKeyDown(int keyCode, KeyEvent event) {
//WebView mWebView = (WebView) findViewById(R.id.webview);
XWalkView mXWalkView = (XWalkView) findViewById(R.id.xWalkView);
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if (mXWalkView.getNavigationHistory().canGoBack()) {
mXWalkView.getNavigationHistory().navigate(XWalkNavigationHistory.Direction.BACKWARD, 1) ;
} else {
finish();
if (MainActivity.mTencent.isSessionValid()) {
MainActivity.logout();
}
}
return true;
}
}
return super.onKeyDown(keyCode, event);
}
для отключения обратного события вы можете переопределить любой из этих методов dispatchKeyEvent
, onBackPressed
, onKeyDown
, Обратитесь к этому ответу для получения дополнительной информации.
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
// TODO Auto-generated method stub
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
return true;
}
return super.dispatchKeyEvent(event);
}