在 UIWebView 中保存 cookies?

Preserving cookies in UIWebView?

所以我的应用程序中有一个 UIWebView,其中有一个 PHP 会话。我的印象是,只要用户打开应用程序,这些 cookie 就会一直保留。

但是发生的事情是用户正在填写表格,将他们的 phone 锁定一段时间或切换到应用程序然后再返回。但由于某种原因,cookie 丢失,会话被重置,他们必须重新启动。

我有什么地方做错了吗?

或者有什么方法可以在每次加载页面后保存 cookie,然后在用户每次查看应用程序时恢复它们?

如果其他人在尝试自行修复此问题时偶然发现此问题,我选择使用网页上的 JavaScript 来修复它。

首先将其包含在您的基础 HTML 文件中,或使用 php 文件将其放入您网站的每个页面中:(因为您不能在js文件。)

<script>
    function get_SID(){
        return '<?php echo session_id(); ?>';
    }
    function get_session_name(){
        return '<?php echo session_name(); ?>';
    }
</script>

然后将此代码添加到您的基本 JS 文件之一:

<script>
   function setCookie(cname, cvalue, exdays) {
       var d = new Date();
       d.setTime(d.getTime() + (exdays*24*60*60*1000));
       var expires = "expires="+ d.toUTCString();
       document.cookie = cname + "=" + cvalue + "; " + expires + "; path=/";
   }
   function refresh_cookie(){
       setCookie(get_session_name(), get_SID(), 10000);
   }
</script>

希望这对其他人有帮助。