我有一个office插件,我也启用了移动端。在插件中查看多个标签页后,Android的返回按钮实际上是从插件中出来的,而不是回到以前的视图。因为我没有改变每个页面的URL,所以这是预料之中的(我做了ajax)。
我收到了微软评论员的评论,问我应该以一种方式处理导航,它应该回到以前的视图。
我相信Android的返回按钮更像是一个硬件事件。那是否可以识别那个返回按钮事件呢?
任何帮助将是非常感激的。
在加载Outlook插件后,安卓系统的后退按钮按下和在网页浏览器中按后退按钮是一样的。outlook插件运行在嵌入式的Android Webview里面,它支持的是 民间活动. 你可以为popstate事件设置一个事件监听器。
window.addEventListener('popstate', () => {
this.onBackButtonPressed();
}, false);
popstate事件只有在历史堆栈中有项目时才会触发。所以为了确保历史记录不是空的,你可以在加载add-in时推送一个项目。
if (window.history && window.history.pushState) {
window.history.pushState({}, '');
}
注意,Office JS API设置了 history.pushState
和 history.replaceState
函数为null (Github问题). 为了调用 pushState
在 Office JS API 加载后,你需要使用 polyfill 或 恢复pushState功能.