我使用下面的代码返回到webview中的第一次尝试。但由于渲染能力低,我使用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.如何在XWalkView中使用go,如果某些代码可能更有帮助的话。2.当我不使用回溯功能时,如何禁用“后退”按钮单击事件。
提前谢谢你。
发布于 2016-12-12 01:53:17
经过几天的挖掘,我解决了这个问题:把这个放在activity中。虽然这是可行的,但往回走有时会失去一些历史。所以我也希望有人能给我一个更好的答案。
对于goback:
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);
}对于禁用back事件,可以重写这些方法中的任何一个-- 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);
}发布于 2016-12-09 21:04:09
您可以使用xwalkviewhistory.cangoback()
https://stackoverflow.com/questions/40968633
复制相似问题