使用 Durandal 创建了 ASP.Net SPA。添加了在 SPA 之前点击的表单登录页面。在 iPad 上访问并保存到主屏幕时,它会像原生应用程序一样打开,我可以登录并在打开 SPA 时仍停留在同一窗口中。但是,一旦我导航到另一条路线,它就会打开 Safari。
是否有我遗漏的东西或任何可能的方式可以避免这种情况,如果我可以让它看起来像一个原生应用程序会很好。
编辑:根据 Durandal viewmodels 文件夹中 shell.js 的所需逻辑:
define(['plugins/router', 'durandal/app'], function (router, app) {
return {
router: router,
activate: function () {
router.map([
{ route: '', title:'Actions', moduleId: 'viewmodels/actions', nav: true },
{ route: 'welcome', title:'Welcome', moduleId: 'viewmodels/welcome', nav: true },
{ route: 'flickr', moduleId: 'viewmodels/flickr', nav: true },
{ route: 'clients', moduleId: 'viewmodels/clients', nav: true },
{ route: 'client/:id', moduleId: 'viewmodels/client', nav: false }
]).buildNavigationModel();
return router.activate();
},
attached: function () {
$("#logoff").show();
}
};
});
您可以使用从 asp.net 站点下载的 Durandal SPA 模板在 VS 2012+ 中简单地创建一个新应用程序。
来自 shell.html 的逻辑:
<ul class="nav" data-bind="foreach: router.navigationModel">
<li data-bind="css: { active: isActive }">
<a data-bind="attr: { href: hash }, html: title"></a>
</li>
</ul>