使用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>