Office加载项:如何在android Outlook应用程序中识别按回

时间:2018-10-23 12:04:24

标签: outlook office-js office-addins outlook-web-addins

我有一个Office加载项,我也启用了移动设备。查看加载项中的多个标签后,Android后退按钮实际上是从加载项中显示出来的,而不是转到上一个视图。这是可以预期的,因为我没有更改每个页面的URL(我做ajax)。

我收到Microsoft审阅者的评论,要求我以某种方式处理导航,并应回到以前的视图。

我相信Android后退按钮更像是硬件事件。甚至有可能确定该后退按钮事件吗?

任何帮助将不胜感激。

1 个答案:

答案 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.pushStatehistory.replaceState函数设置为null(Github issue)。为了在Office JS API加载后调用pushState,您需要使用polyfill或restore the pushState function