NSURLRequest的mainDocumentURL和URL属性有什么区别?

时间:2014-01-28 19:27:58

标签: objective-c uiwebview nsurlrequest uiwebviewdelegate

我已经为iOS构建了一个Web浏览器,我试图将URL拉到地址栏中显示 我查看了NSURLRequestwebView:shouldStartLoadWithRequest:navigationType: webViewDidFinishLoad:委托方法中的UIWebView

我是否应该使用URL的{​​{1}}或mainDocumentURL属性来实现此目的,有什么区别?

2 个答案:

答案 0 :(得分:3)

您想使用URL

在加载页面的子部分(如图像,脚本等)时,将使用

mainDocumentURL来告诉系统在加载这些子部件时可以安全使用哪些cookie。这不是你想要显示的内容,并且无论如何都记录在框架的当前版本中未被使用。

/*!
    @method mainDocumentURL
    @abstract The main document URL associated with this load.
    @discussion This URL is used for the cookie "same domain as main
    document" policy. There may also be other future uses.
    See setMainDocumentURL:
    NOTE: In the current implementation, this value is unused by the
    framework. A fully functional version of this method will be available 
    in the future. 
    @result The main document URL.
*/

答案 1 :(得分:1)

文档不是很清楚,但似乎mainDocumentURL用于cookie策略内部。

来自NSHTTPCookieStorage Class Reference > setCookies:forURL:mainDocumentURL:

  

mainDocumentURL

     

顶级框架的主HTML文档的URL(如果已知)。可以是零。如果cookie接受策略为NSHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain,则此URL用于确定是否应接受cookie。

如果您使用的URL可能是HTML框架中嵌入的子框架或某种媒体类型,那么您可能希望知道mainDocumentURL是什么;否则,只需使用网址。