在 PhoneGap Build 中为 iOS 7 启用 cookie
Posted
技术标签:
【中文标题】在 PhoneGap Build 中为 iOS 7 启用 cookie【英文标题】:Enable cookies for iOS 7 in PhoneGap Build 【发布时间】:2013-11-23 09:01:29 【问题描述】:我正在尝试让我的WebApp
在我的 iPad (ios 7) 上工作。根据我所做的所有研究,您似乎需要专门启用 cookie(天知道为什么!)
我在 SO 上找到了这篇文章:
How to enable cookies for android phonegap 1.8.0 app?
这一切都很好,除了我使用PhoneGap Build
来创建我的应用程序(因此无权访问这些文件进行编辑)
谁能建议我能做什么?如果不做这个黑客,我就不能在我的 iOS 应用程序上使用localStorage
(或 cookie),这似乎很疯狂! (我的应用程序在没有这个问题的 Android 上完美运行)。
我已经研究过安装 XCode 并手动编码/编译应用程序,但这仅适用于 Mac(我没有)
更新:环顾四周,似乎唯一的解决方案(我能找到)是编写一个插件来启用 cookie。这一切都很好 - 但是:
我没有 Mac 来写它 我可以编写很多语言,但 Java 不是其中之一 我什至如何将它添加到他们的构建列表中,以便我可以包含它!有人有兴趣为我编写插件吗?据我所知,它只需要调用:
CookieSyncManager.createInstance(this);
CookieSyncManager.getInstance().startSync();
webView = (WebView) findViewById(R.id.webview);
webview.getSettings().setjavascriptEnabled(true);
这把我逼疯了!
【问题讨论】:
也许这个插件对你有用? github.com/bez4pieci/Phonegap-Cookies-Plugin 谢谢 - 虽然不确定这是否能满足我的需要 :) 我找到了一种让它工作的方法,方法是在初始脚本加载时设置一个 1.5 秒的计时器,这似乎让 iOS 有时间启动在事情的饼干方面。疯了,我知道……但它有效! 我误解了你的问题。实际上,我在 PhoneGap 应用程序中经常使用 cookie,我没有遇到任何问题。奇怪... 是的 - 奇怪的是它适用于 Android,但不适用于 iOS。它给出了"document.localStorage is not defined"
之类的错误
【参考方案1】:
刚刚复习一下我的问题,并想我会回答这个问题 - 似乎出于某种原因,iOS 不喜欢在准备好的页面上加载 localStorage()。为了解决这个问题,您还必须设置一个 1.5 秒的计时器 - 这样它就不会在 iOS 加载 localStorage() 之前运行。即:
setTimeout(function() doInit() , 1500);
这并不理想 - 如果有一种方法可以在 PhoneGap Build
中为 iOS 启用 cookie,而无需编写插件来执行此操作(我没有技能;))
【讨论】:
你好像有安卓代码。我不知道在 phonegap 源代码中的何处进行编辑,尽管在早期版本的 phonegap 中这更容易。尝试在 phonegap 应用程序中提供的设备就绪回调中包含您的 localStorage 函数。【参考方案2】:如果您指的是document.localStorage
(如上所述),那将是问题所在,因为localStorage
是window
的属性,而不是document
的属性。
【讨论】:
对不起,我的意思是 window.localStorage :)以上是关于在 PhoneGap Build 中为 iOS 7 启用 cookie的主要内容,如果未能解决你的问题,请参考以下文章
iOS - 应用程序图标支持带有不同支持iOS版本的Phonegap Build Project的错误
我无法使用 CDVPlugin 从 phonegap 2.7.0 中的 javascript 访问本机 iOS?