我有一个Office加载项,我也启用了移动设备。查看加载项中的多个标签后,Android后退按钮实际上是从加载项中显示出来的,而不是转到上一个视图。这是可以预期的,因为我没有更改每个页面的URL(我做ajax)。
我收到Microsoft审阅者的评论,要求我以某种方式处理导航,并应回到以前的视图。
我相信Android后退按钮更像是硬件事件。甚至有可能确定该后退按钮事件吗?
任何帮助将不胜感激。
答案 0 :(得分:0)
加载Outlook加载项后,按下Android后退按钮与在Web浏览器中按下后退按钮相同。 Outlook加载项在支持popstate event的嵌入式Android Webview中运行。您可以为popstate事件设置事件监听器:
window.addEventListener('popstate', () => {
this.onBackButtonPressed();
}, false);
仅当历史记录堆栈中有项目时,才会触发popstate事件。因此,为确保历史记录不为空,可以在加载加载项时推送项目:
if (window.history && window.history.pushState) {
window.history.pushState({}, '');
}
请注意,Office JS API将history.pushState
和history.replaceState
函数设置为null(Github issue)。为了在Office JS API加载后调用pushState
,您需要使用polyfill或restore the pushState function。