如何将混合应用程序重定向到主页而不是Ionic ios应用程序中的教程页面?

时间:2018-03-22 11:18:27

标签: ios iphone ionic-framework hybrid-mobile-app

目前我正在开发使用离子的混合应用程序。所以我的应用程序通常包含一个介绍视图,在介绍视图之后它直接进入主页。当我杀死应用程序时,我需要再次启动时显示主页而不是教程视图。由于我是一名原生iOS开发人员,因此我很清楚如何在本机ios代码中管理它:

        func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
if (NSUserDefaults.standardUserDefaults().objectForKey("login") == nil)
        {
            NSUserDefaults.standardUserDefaults().setBool(false, forKey: "login")
        }
        if (NSUserDefaults.standardUserDefaults().boolForKey("login") == true)
        {

            do {
                let arr1 = try UserProfileDataHelper.find("1")
                if arr1?.Type == "Customer" {
                    currentUser = "Customer"
                    screenlaunch("MENU")
                }else{
                    currentUser = "Store"
                    screenlaunch("HOME")
                }

            } catch _{}


        }

         return true
    }

 func screenlaunch(str : String )
    {
        let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)

            let homeViewController = mainStoryboard.instantiateViewControllerWithIdentifier(str)
            let navigationController :UINavigationController = UINavigationController(rootViewController: homeViewController)
            navigationController.navigationBarHidden = true
            window!.rootViewController = nil
            window!.rootViewController = navigationController
            window?.makeKeyWindow()

    }

如何在离子应用中实现相同目的。请对此有所了解。经过我的研究,我发现我的老同事已经利用了:

   console.log("didTutorial: "+$localStorageProvider.get('didTutorial'));
  if( $localStorageProvider.get('didTutorial') ){

    $urlRouterProvider.otherwise('/app/hero');
  }
  else{

    $urlRouterProvider.otherwise('/');
  }

这与状态变化有关吗?

ScreenShots

1 个答案:

答案 0 :(得分:1)

您可以根据条件使用以下加载Root页面的概念。

根据您的要求,您需要首次加载教程页面导航流程,在第二次加载时,您不需要将教程页面作为第一页。

因此,如下所述。

第1步:rootPage: any;页面中添加一个变量app.component.ts

第2步:将 rootPage 绑定到app.html文件中,以便在应用启动时加载哪个根页。

<ion-nav [root]="rootPage" #content swipeBackEnabled="false"></ion-nav>

第3步现在,在您的app.component.ts页检查条件中,用户是否看到了教程页面,并根据该页面分配 rootPage ,如下所示。

initializeApp() {
    this.platform.ready().then(() => {
      //retrieve isAppRunFirstTime from DB storage 

      if (!isAppRunFirstTime) {
          this.rootPage = TutorialPage;
      } else {
          this.rootPage = HomePage;
       }
    }
  }
  

注意:isAppRunFirstTime是决定您的应用加载的标志   第一次。

以上标志,您可以存储在存储数据库中,并且首次应用程序加载时,在数据库中将其设为True。

希望这可以帮助您在应用中加载条件根页面。