作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前我正在使用 ionic 开发混合应用程序。所以我的应用程序通常包含一个介绍 View ,在介绍 View 之后它会直接进入主页。当我终止应用程序时,我需要在再次启动时显示主页而不是教程 View 。由于我是原生 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()
}
如何在 ionic 应用中实现同样的效果。请对此有一个想法。经过我的研究,我发现我的老同事利用了:
console.log("didTutorial: "+$localStorageProvider.get('didTutorial'));
if( $localStorageProvider.get('didTutorial') ){
$urlRouterProvider.otherwise('/app/hero');
}
else{
$urlRouterProvider.otherwise('/');
}
是否与状态变化有关?
最佳答案
您可以使用以下基于条件加载根页面的概念。
根据您的要求,第一次您需要加载教程页面导航流程,第二次加载时您不需要将教程页面作为首页。
因此,请按照下面的说明进行操作。
第 1 步:在 app.component.ts
页面中添加一个变量 rootPage: any;
。
第2步:在您的app.html
文件中绑定(bind)rootPage,它决定在您的应用启动时加载哪个根页面。
<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;
}
}
}
Note :
isAppRunFirstTime
is flag which decide your app is loading at first time.
以上标志您可以存储在存储数据库中,并在第一次应用程序加载时在您的数据库中使其为真。
希望这将帮助您在应用程序中加载条件根页面。
关于ios - 如何将混合应用程序重定向到主页而不是 Ionic ios 应用程序中的教程页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49427302/
我是一名优秀的程序员,十分优秀!