iOS Safari“添加到主屏幕”问题

时间:2016-01-18 08:52:13

标签: ios symfony session web-applications safari

我有一个使用此metas的网络应用程序:

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">

这个应用程序是一个基于Web的PHP Silex / Symfony,启动时登录会话。

我的iPad上有我的图标,但每次打开我的应用程序时, safari会重新加载登录页面,即使我之前已登录过。

有人可以帮我吗?

// Register routes
$app->get('/', 'index.controller:indexAction')->bind('index')->value('require_authentication', true);
$app->get('/login', 'auth.controller:loginAction')->bind('login');
$app->get('/logout', 'auth.controller:logoutAction')->bind('logout');
$app->post('/auth', 'auth.controller:authAction')->bind('auth');
....


//before stack - check for user login, if not throw AccessDeniedHttpException
$app->before(function(Request $request, Application $app) {

    if ($app['request']->get('require_authentication')) {
        if (null === $user = $app['session']->get('user')) {
            throw new AccessDeniedHttpException("require auth");
        }else{ 
            $app["twig"]->addGlobal("user", $user);

        }
    }
});

此网络应用仅在iPad上使用,因此无需为每台设备识别代码。

1 个答案:

答案 0 :(得分:1)

/的路由将捕获所有请求,因此您需要reorder them such that more specific route paths are not caught be less specific ones

  

定义路线的顺序非常重要。将使用第一个匹配路由,因此在底部放置更多通用路由。

这意味着您的代码应如下所示:

// Register Routes
$app->get('/login', 'auth.controller:loginAction')->bind('login');
$app->get('/logout', 'auth.controller:logoutAction')->bind('logout');
$app->post('/auth', 'auth.controller:authAction')->bind('auth');
$app->get('/', 'index.controller:indexAction')->bind('index')->value('require_authentication', true);