iOS UIWebView 允许所有三方cookie
前几天项目中用到UIWebView, 而在网页中,用到了多说评论的第三方。但是当我在手机端发表评论的时候,出现禁用第三方cookie,而安卓是没有这种情况的,于是就在找原因。找了很久也没有找到原因。一开始想到的是没有加载多说的cookie,于是打印cookie,cookie存在,这种错误原因被推翻;是不是cookie不对?尝试过重新设置cookie等等,还是不行,纠结了很久;那么是不是UIWebView和NSRequest里面的哪个属性设置允许所有的cookie,查看了所有有关这两个类的所有文档,还是没有找到解决办法。于是重新捋了一下问题,禁用第三方cookie,是不是和cookie的属性有关(原谅平常很少和cookie打交道,所以没有一开始想到这里),于是在cookie的文档里面寻找相应的属性,类的一开始便找到了这个属性。
/*! @enum NSHTTPCookieAcceptPolicy @abstract Values for the different cookie accept policies @constant NSHTTPCookieAcceptPolicyAlways Accept all cookies @constant NSHTTPCookieAcceptPolicyNever Reject all cookies @constant NSHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain Accept cookies only from the main document domain */ typedef NS_ENUM(NSUInteger, NSHTTPCookieAcceptPolicy) { NSHTTPCookieAcceptPolicyAlways, NSHTTPCookieAcceptPolicyNever, NSHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain };
看到这里变豁然开朗,设置允许所有的cookie加载。
/*! @method cookieAcceptPolicy @abstract The cookie accept policy preference of the receiver. */ @property NSHTTPCookieAcceptPolicy cookieAcceptPolicy;
设置这个属性便可以加载第三方cookie。
附上查看的链接:《iOS: Is it possible to set a cookie manually using sharedHTTPCookieStorage for a UIWebView?》