*的 修改 * 我做了更多的研究,看起来像饼干也可能是答案。我想我会在嵌入式html中的表单中添加一个按钮,该按钮调用函数来为值创建cookie。然后我可以使用stringByEvaluatingJavaScriptFromString方法通过obj-c访问这个cookie。当然,你会遇到过期问题,不允许表格的多个副本等等。所以这是功能的权衡。我将坚持使用window.location路由,因为我可以将其存储在数据库中,然后用户可以创建相同表单的另一个实例 * 修改 *
我做了一些研究,我对如何实现这一点有一个模糊的想法,但我很好奇是否有更好的方法。
我正在开发的这个iPad应用程序的UIWebView中加载一个html表单的本地副本。表单通过xml在服务器端提交,并在那里进行数据库存储解析,但不幸的是它们非常冗长。所以我想让用户将表单保存为当前状态(可能只是中途填写),然后再返回。
我在想的是我必须编写一些javascript来解析表单中的单选按钮和复选框,然后将这些数据通过window.location技巧传递给obj-c代码。但这非常冗长,在JS和Obj-C之间来回传递的字符串将会非常长。有没有其他方法可以获取这些复选框/单选按钮的值并将它们传递给obj-c一侧以便以后重新填充?
答案 0 :(得分:1)
通过文件怎么样?将设置/数据保存到JS中的文件,并在Objective-C中访问该文件。但我想你已经想过这个了。
但是在一天结束时,无论你如何做,数据都必须来回传递。通过window.location技巧来做这件事会是最快的,如果操作系统本身没有任何限制,有没有理由不这样做?
您可以将数据编码为blob,以便更容易传递。
但另一方面,如果您希望在应用程序终止时设置仍然存在,那么通过文件路径执行此操作可能会很有用。
您也可以实际提交表单数据,但在使用NSURLProtocol派生类发送之前,在Objective-C中拦截它。如果NSURLProtocol类知道数据已完成,则可以允许提交继续进行。但是,如果window.location没有大小限制,我认为没有任何意义。