代码之家  ›  专栏  ›  技术社区  ›  theshadow124

在UIWebView中保留cookie?

  •  0
  • theshadow124  · 技术社区  · 9 年前

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

    但实际情况是,用户正在填写表单,锁定手机一段时间,或者切换到应用程序后再返回。但由于某种原因,cookie丢失,会话被重置,他们必须重新启动。

    我可能做错什么了吗?

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

    1 回复  |  直到 9 年前
        1
  •  0
  •   theshadow124    9 年前

    如果其他人在尝试自己修复时遇到这个问题,我选择在网页上使用JavaScript修复。

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

    <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>
    

    希望这能帮助其他人。