最近,我们不得不将Mac产品的嵌入式帮助迁移到网络,并从Mac HelpViewer引用它。 据我所知,MacOs HelpViewer是一个定制的基于webkit的应用程序,用于显示产品帮助,必须以特定的文件夹结构呈现。 HelpViewer的导航和菜单按钮与任何浏览器按钮都不相似,对于其他浏览器,我们的网络帮助在SPA模式下完美运行
window.history.pushState
但是,一旦将此SPA行为应用于HelpViewer导航按钮,就不会对更改网址或向window.history
集合添加状态做出反应(禁用它们)。
MacOS nativa应用程序也有基于Web的帮助,例如:日历应用程序。这个帮助基于Ember.js并且还有一些SPA行为,但是这个按钮会触发HelpViewer的按钮来响应(它们变为启用状态)并且一旦点击就可以工作。
我尝试解决的问题是如何触发HelpViewer对更改网址或window.history
做出反应。也许ember.js做了一些额外的事情,除了将state
添加到window.history
?