1

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

0 回答 0