我想知道是否可以手动编辑Crosswalk中的当前导航项索引(https://crosswalk-project.org/apis/embeddingapidocs_v3/org/xwalk/core/XWalkNavigationHistory.html#getCurrentIndex())?
我需要这样做的原因是因为当我们第二次尝试返回我们的应用程序时,索引为0时应为1,因此会破坏应用程序。
我们在网站上使用window.navigator
来注册用户的操作。
答案 0 :(得分:0)
我设法通过将空状态推送到网站来修复它。相关代码:
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if (mXWalkView != null &&
SyncBackgroundService.APP_IS_RUNNING &&
mXWalkView.getNavigationHistory().getCurrentIndex() == 0) {
Crashlytics.log(Log.DEBUG, LOG_TAG, "Third");
mXWalkView.evaluateJavascript("history.pushState({}, \"\", \"\");", null);
return true;
} else {
return super.dispatchKeyEvent(event);
}
}
}
所以基本上做的是,如果应用程序正在运行且当前索引为0,它将把新的导航状态推送到网站,这样它就不会破坏或暂停应用程序。