在Ionic 4 PWA应用而非首页上设置start_url

时间:2019-08-01 10:58:22

标签: angular typescript ionic4 progressive-web-apps

我使用Ionic 4和Angular PWA工具包开发了示例PWA应用程序。当用户单击设备主屏幕上的应用程序图标时,我需要将主屏幕设置为login page。如果用户已经登录,那么他将移至下一页。即登录页面之后。假设仪表板。我怎样才能做到这一点?

文档:https://developers.google.com/web/fundamentals/web-app-manifest/#start-url

  

start_url告诉浏览器应用程序应从何处启动   启动时,并阻止该应用在任何情况下启动   用户将您的应用添加到主屏幕时所在的页面。

我已经尝试过了。但是它总是转到home页。不登录页面。

manifest.json

  "display": "standalone",
  "scope": "/",
  "start_url": "/login",

routing.ts

const routes: Routes = [
  {
    path: '',
    redirectTo: 'home',
    pathMatch: 'full'
  },
  {
    path: 'home',
    loadChildren: './pages/home/home.module#HomePageModule'
  },
  {
    path: 'quotes',
    loadChildren: './pages/quotes/quotes/quotes.module#QuotesPageModule',
    canActivate: [AuthGuard]
  },
  {
    path: 'details',
    loadChildren: './pages/quotes/details/details.module#DetailsPageModule',
    canActivate: [AuthGuard]
  },
  {
    path: 'login',
    loadChildren: './pages/sign-in/login/login.module#LoginPageModule'
  },
  {
    path: 'signup',
    loadChildren: './pages/sign-in/signup/signup.module#SignupPageModule'
  }
];

1 个答案:

答案 0 :(得分:2)

您只需将 /** * @Route("/search", name="searchEvent") */ public functionnsearchAction(Request $request){ $em = $this->getDoctrine()->getManager(); $queryBuilder = $em->getRepository(Event::class)- >createQueryBuilder('e'); if($request->query->getAlnum('filter')){ $queryBuilder ->where('e.major LIKE :major') ->setParameter('major', '%' . $request->query- >getAlnum('filter') . '%'); } $event = $queryBuilder->getQuery(); return $this->render('event/showEvent.html.twig',array( 'event' => $event )); 添加到本地路由定义即可。因此默认情况下,您的应用将要转到canActivate: [AuthGuard]路线,如果该人未登录,它将被重定向到/home

或者,在您的登录路由定义中,添加/login,然后在canActivate: [ServiceToCheckIfLoggedIn]中运行逻辑以检查用户是否已登录,如果是,则将其重定向到所需的位置。