判断App是否为第一次打开

在appdelegate.m中找到 “application:didFinishLaunchingWithOptions:” 方法, 添加以下代码:

if (![[NSUserDefaults standardUserDefaults] boolForKey:@"everLaunched"]) {
   [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"everLaunched"];
   [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstLaunch"];
}
else{
   [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"firstLaunch"];
}

总的解决办法是 2 个key: @”everLaunched”判断用户以前是否登录,

                                             @”firstLaunch” 用来开发者在程序的其他部分判断.

在第一次启动的时候 key @”everLaunched” 不会被赋址的, 并且设置为YES. @”firstLaunch” 被设置为 YES.
在程序的其他部分用以下代码判断:

if ([[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]) {
   // 这里判断是否第一次


UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"第一次"
                                                                         message:@"进入App"
                                                                      delegate:self
cancelButtonTitle:@"我知道了"
 otherButtonTitles:nil];
[alert show];
[alert release];

}
第一段代码运行key @”firstLaunch” 将被设置为 NO。

 

已经测试过,上述方法有效,而且比我想的要简单



转载:http://blog.sina.com.cn/s/blog_83fba88601016586.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以通过以下步骤在uni-app中实现第一次打开app填写相关信息,第二次打开app直接到首页,除非退出登录: 1. 首先,您可以在App.vue文件中创建一个全局的标识符,用于判断是否第一次打开app。可以使用uni.getStorageSync(key)方法来获取本地缓存中的数据,如果数据存在,则说明已经打开app,直接跳转到首页。 ```javascript // App.vue export default { onLaunch() { // 判断是否第一次打开app const isFirstOpen = uni.getStorageSync('isFirstOpen'); if (!isFirstOpen) { // 第一次打开app,跳转到填写相关信息的页面 uni.navigateTo({ url: '/pages/infoForm/infoForm' }); uni.setStorageSync('isFirstOpen', true); // 设置已经打开app标志 } } } ``` 2. 在填写相关信息的页面(例如infoForm.vue),用户填写完相关信息后,点击提交按钮时,保存相关信息到本地缓存,并跳转到首页。 ```javascript // infoForm.vue export default { methods: { submitForm() { // 保存填写的相关信息到本地缓存 uni.setStorageSync('userInfo', this.userInfo); // 跳转到首页 uni.switchTab({ url: '/pages/home/home' }); } } } ``` 3. 在首页(例如home.vue)中,可以在onLoad生命周期钩子中判断用户是否已经填写过相关信息,如果没有填写,则跳转到填写信息的页面。 ```javascript // home.vue export default { onLoad() { // 判断用户是否已经填写过相关信息 const userInfo = uni.getStorageSync('userInfo'); if (!userInfo) { // 用户未填写相关信息,跳转到填写信息的页面 uni.navigateTo({ url: '/pages/infoForm/infoForm' }); } } } ``` 通过以上步骤,您可以实现在uni-app第一次打开app填写相关信息,第二次打开app直接到首页的功能。当用户退出登录时,您可以清除本地缓存中的相关标识符和用户信息,以便下次重新登录时重新填写信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值