iPhone 主屏幕 Web 应用程序和保持登录状态

Posted

技术标签:

【中文标题】iPhone 主屏幕 Web 应用程序和保持登录状态【英文标题】:iPhone Home Screen Web App and Staying Logged In 【发布时间】:2012-08-25 00:21:49 【问题描述】:

我在使用浏览器时一直使用 php Session 保持登录状态,但是当我将 Web 应用程序保存到主屏幕并启动应用程序时,每次打开应用程序时都必须登录。有没有办法保持登录状态?

当我查看本地存储时,任何人都可以提供代码示例或指出正确的方向,但不确定在我登录时如何设置 LocalStorage 值以及如何检查该值是否存在。

注意:我目前使用 PHP 登录

谢谢

index.php

<script type="text/javascript">
    <?php echo $_SESSION['logged'];?> 
    <?php if ($_GET['logged'] == 1)?>
        $.cookie( 'loggedin', '1',   expires: 7, path: '/'  );
    <?php ?>
        if( $.cookie('loggedin') == '1' )  
            <?php $userlog = true?>
            $.cookie( 'loggedin', '1',   expires: 7, path: '/'  );
         else 
            <?php $userlog = false?>
        $.cookie( 'loggedin', '0',   expires: 7, path: '/'  );        
        
</script>

$_SESSION['logged'] 是从 sign-in.php 文件中设置的

登录.php

    if($count==1) 
        session_register("username");
        $_SESSION['logged']= $user;
        header("location: /?logged=1");
     else 
        echo "Your Login Name or Password is invalid";
    

【问题讨论】:

不,实际上您“没有”使用 PHP 登录。至少不是直接登录。您正在使用 ios。我的意思是:将登录凭据存储在应用程序本身中,并在启动时自行“重新验证”。这样,您就可以避免每次都登录。我手头没有代码,所以我只评论。 提供一些你的代码的 sn-p 和/或应用程序伙伴人们在这里猜测你的问题.. :( 刚刚编辑以包含我的代码 设置 cookie 也不起作用。我使用了 jQuery Cookie,当我重新打开应用程序时它不起作用 【参考方案1】:

我很确定您不需要 LocalStorage。

只需设置一个未来过期的 cookie,而不是会话 cookie(浏览器关闭时会删除)。

您可能无法为此使用 PHP 会话,因为它们会定期删除。相反,您必须自己处理登录 cookie。

【讨论】:

不,他可能需要使用localstorage,因为 iphone 主页收藏夹会在短时间内清除 cookie。【参考方案2】:

我不确定是什么问题,但如果您想要可持续的本地存储,请检查您是否已登录,在您的 iOS 应用程序关闭后,这里是:

为用户默认设置一个标志,例如:

  [[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"isLogin"];

然后在应用程序启动时检索此值以检查您是否已登录:

 BOOL isLogin = [[NSUserDefaults standardUserDefaults] valueForKey:@"isLogin"];

现在相应地执行您需要的操作。

【讨论】:

【参考方案3】:

我目前使用的 LocalStorage 效果很好

【讨论】:

以上是关于iPhone 主屏幕 Web 应用程序和保持登录状态的主要内容,如果未能解决你的问题,请参考以下文章

停止重新加载从 iPhone 主屏幕启动的 Web 应用程序

提示 iPhone 用户将用 Asp.Net MVC 开发的网页添加到主屏幕

iPhone 5 的主屏幕网页应用程序的适合高度

iOS开发 - 不进入待机(屏幕保持唤醒)---UIApplication学习

隐藏iPhone上的Safari用户界面组件

针对 iPhone 应用的 Instruments UI 自动化测试