Mac Developer Library

Developer

WebKit Framework Reference WebDataSource Class Reference

Options
Deployment Target:

On This Page
Language:

WebDataSource

WebDataSource encapsulates the web content to be displayed in a web frame view. A WebDataSource object has a representation object, conforming to the WebDocumentRepresentation protocol, that holds the data in an appropriate format depending on the MIME type. You can extend WebKit to support new MIME types by implementing your own view and representation classes, and specifying the mapping between them using the registerViewClass:representationClass:forMIMEType: WebView class method.

WebDataSource objects have an associated initial request, possibly a modified request, and a response object. Since the data source may be in the process of being loaded, you should check the state of a data source using the isLoading method before accessing its data. Use the data method to get the raw data. Use the representation method to get the actual representation object and query it for more details.

Inheritance


Conforms To


Import Statement


Swift

import WebKit

Objective-C

@import WebKit;

Availability


Available in OS X v10.2 and later.
  • initializes a data source with a URL request.

    Declaration

    Swift

    init!(request request: NSURLRequest!)

    Objective-C

    - (instancetype)initWithRequest:(NSURLRequest *)request

    Parameters

    request

    The URL request used to load the web content.

    Return Value

    The initialized web data source.

    Discussion

    This method is the designated initializer for WebDataSource objects. Normally, WebFrame objects create their data sources, so you should not invoke this method directly.

    Import Statement

    Objective-C

    @import WebKit;

    Swift

    import WebKit

    Availability

    Available in OS X v10.2 and later.

  • Returns the raw data that represents the data source’s content.

    Declaration

    Swift

    @NSCopying var data: NSData! { get }

    Objective-C

    @property(nonatomic, readonly, copy) NSData *data

    Return Value

    The data used to display the webpage or nil if the data source hasn’t loaded any data. The format of the data is dependent on the data source’s MIME type (obtained from the response).

    Discussion

    Use the isLoading method to test if a data source is in the process of loading.

    Import Statement

    Objective-C

    @import WebKit;

    Swift

    import WebKit

    Availability

    Available in OS X v10.2 with Safari 1.0 and later.

    Available in OS X v10.2.7 and later.

  • isLoading - isLoading Available in OS X v10.2 through OS X v10.9

    Returns whether the data source is loading its content.

    Declaration

    Objective-C

    - (BOOL)isLoading

    Return Value

    YEStrue if the data source is in the process of loading its content; otherwise, NOfalse.

    Import Statement

    Objective-C

    @import WebKit;

    Availability

    Available in OS X v10.2 through OS X v10.9.

  • Returns the title of the data source’s page.

    Declaration

    Swift

    var pageTitle: String! { get }

    Objective-C

    @property(nonatomic, readonly, copy) NSString *pageTitle

    Return Value

    The page title or nil if the page has no title or the page title hasn’t been loaded yet.

    Discussion

    The associated web view notifies its frame load delegate when the page title is loaded by invoking the webView:didReceiveTitle:forFrame: delegate method.

    Import Statement

    Objective-C

    @import WebKit;

    Swift

    import WebKit

    Availability

    Available in OS X v10.2 and later.

  • Returns the data source’s representation depending on its MIME type.

    Declaration

    Swift

    var representation: WebDocumentRepresentation! { get }

    Objective-C

    @property(nonatomic, readonly, strong) id<WebDocumentRepresentation> representation

    Return Value

    The data source’s representation or nil if the data source is in the process of being loaded and this method is invoked before loading is complete.

    Discussion

    You can specify the mapping between a representation and MIME type using the registerViewClass:representationClass:forMIMEType: WebView class method.

    Import Statement

    Objective-C

    @import WebKit;

    Swift

    import WebKit

    Availability

    Available in OS X v10.2 and later.

  • Returns the text encoding for the data source’s web view, if set, or the text encoding of the response.

    Declaration

    Swift

    var textEncodingName: String! { get }

    Objective-C

    @property(nonatomic, readonly, copy) NSString *textEncodingName

    Return Value

    The text encoding.

    Import Statement

    Objective-C

    @import WebKit;

    Swift

    import WebKit

    Availability

    Available in OS X v10.2 and later.

  • Returns a reference to the original request that was used to load the web content.

    Declaration

    Swift

    var initialRequest: NSURLRequest! { get }

    Objective-C

    @property(nonatomic, readonly, strong) NSURLRequest *initialRequest

    Return Value

    The initial request.

    Import Statement

    Objective-C

    @import WebKit;

    Swift

    import WebKit

    Availability

    Available in OS X v10.2 and later.

  • Returns the request that was used to create the data source.

    Declaration

    Swift

    var request: NSMutableURLRequest! { get }

    Objective-C

    @property(nonatomic, readonly, strong) NSMutableURLRequest *request

    Return Value

    The request used to load the web content. This URL may be different from the original request returned by the initialRequest method.

    Discussion

    A web view’s resource load delegate may modify requests by implementing the webView:resource:willSendRequest:redirectResponse:fromDataSource: method.

    Import Statement

    Objective-C

    @import WebKit;

    Swift

    import WebKit

    Availability

    Available in OS X v10.2 and later.

  • Returns the response for this data source.

    Declaration

    Swift

    var response: NSURLResponse! { get }

    Objective-C

    @property(nonatomic, readonly, strong) NSURLResponse *response

    Return Value

    The associated NSURLResponse object or nil if a response has not been received yet..

    Import Statement

    Objective-C

    @import WebKit;

    Swift

    import WebKit

    Availability

    Available in OS X v10.2 and later.

  • Returns the web frame that represents this data source.

    Declaration

    Swift

    var webFrame: WebFrame! { get }

    Objective-C

    @property(nonatomic, readonly, strong) WebFrame *webFrame

    Return Value

    The associated web frame.

    Import Statement

    Objective-C

    @import WebKit;

    Swift

    import WebKit

    Availability

    Available in OS X v10.2 and later.

  • Returns the data source’s unreachable URL.

    Declaration

    Swift

    var unreachableURL: NSURL! { get }

    Objective-C

    @property(nonatomic, readonly, strong) NSURL *unreachableURL

    Return Value

    The unreachable URL if it exists; otherwise, nil.

    Discussion

    The data source has an unreachable URL if it was created using the loadAlternateHTMLString:baseURL:forUnreachableURL: WebFrame method.

    Import Statement

    Objective-C

    @import WebKit;

    Swift

    import WebKit

    Availability

    Available in OS X v10.3 and later.

  • Returns a web archive representing the data source, its subresources, and subframes.

    Declaration

    Swift

    var webArchive: WebArchive! { get }

    Objective-C

    @property(nonatomic, readonly, strong) WebArchive *webArchive

    Return Value

    A web archive representing the data source constructed using the original downloaded data. In the case of HTML, if the current content is preferred, then send webArchive to the appropriate DOM object.

    Import Statement

    Objective-C

    @import WebKit;

    Swift

    import WebKit

    Availability

    Available in OS X v10.3 and later.

  • Creates and returns a WebResource object representing the data source.

    Declaration

    Swift

    var mainResource: WebResource! { get }

    Objective-C

    @property(nonatomic, readonly, strong) WebResource *mainResource

    Return Value

    A web resource representing the data source. The contents returned are based on the original downloaded data. You can use the returned value to create a WebArchive object instead of using the webArchive method.

    Import Statement

    Objective-C

    @import WebKit;

    Swift

    import WebKit

    Availability

    Available in OS X v10.3 and later.

  • Adds a resource to the data source’s list of subresources.

    Declaration

    Swift

    func addSubresource(_ subresource: WebResource!)

    Objective-C

    - (void)addSubresource:(WebResource *)subresource

    Parameters

    subresource

    The resource to add to the data source.

    Discussion

    If the data source needs to reload the resource’s URL, it loads the data from subresource instead of the network. For example, use this method if you want to use a previously downloaded image rather than accessing the network to reload a resource. If the data source already has a resource with the same URL as subresource, then this method replaces it.

    Import Statement

    Objective-C

    @import WebKit;

    Swift

    import WebKit

    Availability

    Available in OS X v10.3 and later.

  • Returns a subresource for the given URL.

    Declaration

    Swift

    func subresourceForURL(_ URL: NSURL!) -> WebResource!

    Objective-C

    - (WebResource *)subresourceForURL:(NSURL *)URL

    Parameters

    URL

    The subresource’s URL.

    Return Value

    The subresource for URL or nil if the data source hasn’t finished downloading the subresource.

    Import Statement

    Objective-C

    @import WebKit;

    Swift

    import WebKit

    Availability

    Available in OS X v10.3 and later.

  • Returns the data source’s subresources that have finished downloading.

    Declaration

    Swift

    var subresources: [AnyObject]! { get }

    Objective-C

    @property(nonatomic, readonly, copy) NSArray *subresources

    Return Value

    An array of the data source’s loaded subresources.

    Import Statement

    Objective-C

    @import WebKit;

    Swift

    import WebKit

    Availability

    Available in OS X v10.3 and later.