在 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>
希望这对其他人有帮助。
所以我的应用程序中有一个 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>
希望这对其他人有帮助。