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>