--- title: NowWebService class - iOS description: The NowWebService class provides functions that enable the browsing of web pages on a ServiceNow instance.Initializes a NowWebService instance.Creates a UIViewController object that hosts the web view.Preloads a list of specified pages with cacheable resources in the background \(by NowWeb\) to improve initial load times. locale: en-US canonical_url: https://www.servicenow.com/docs/r/australia/api-reference/cllent-mobile-api-reference/NowWebServiceiOSAPI.html release: australia product: Cllent Mobile API Reference classification: cllent-mobile-api-reference topic_type: concept last_updated: "2026-03-12" reading_time_minutes: 2 breadcrumb: [Mobile SDK - iOS, Mobile SDK API reference, API reference, API implementation and reference] --- # NowWebService class- iOS The NowWebService class provides functions that enable the browsing of web pages on a ServiceNow instance. \[Omitted image "mobsdk-web-start-flow.png"\] Alt text: Web page load flow |Name|Type|Description| |----|----|-----------| |configuration|[NowServiceConfiguration](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/cllent-mobile-api-reference/NowServiceConfigurationiOSStruct.md)|Configuration parameters to use when initializing the NowWebService instance.| **Parent Topic:**[Mobile SDK - iOS](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/cllent-mobile-api-reference/MobileSDKiOSAPI.md) ## NowWebService - init\(configuration: NowServiceConfiguration, coreServiceProvider: NowCoreServiceProviding? = nil\) Initializes a NowWebService instance.
Name Type Description
configuration [NowServiceConfiguration](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/cllent-mobile-api-reference/NowServiceConfigurationiOSStruct.md) Configuration parameters to use when initializing the NowWebService instance.
coreServiceProvider NowCoreServiceProviding Optional. Service provider to associate with the NowWebService instance.Default: nil
The following code example shows how to call this method. ``` guard let coreService = NowSDK.core() else { // Error with NowServiceError.sdkNotConfigured return } guard let instanceUrl = URL(string: "http://sample.service-now.com") , let serviceConfig = NowSDK.makeServiceConfiguration(for: instanceUrl) else { // Could not create service – // NowServiceError.serviceConfigurationInvalid return } let webService = NowWebService(configuration: serviceConfig, coreServiceProvider: coreService) ``` ## NowWebService - makeWebViewController\(for url: URL, delegate: NowWebViewControllerDelegate, theme: NowWebThemeable\) Creates a UIViewController object that hosts the web view.
Name Type Description
for url URL URL of the web page to load. This web page must be on the target ServiceNow instance that the service was initialized with.
delegate NowWebViewControllerDelegate Optional. Object that receives callback events from the WebViewController into the native application.
theme [NowWebThemeable protocol - iOS](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/cllent-mobile-api-reference/NowWebThemeableiOSProtocol.md) Optional. NowUIThemeable protocol to apply to the UI elements of the view controller, such as color.Default: NowWebDefaultTheme\(nowUITheme: NowUIDefaultTheme\(\)\)
Type Description
Result<NowWebViewController, NowWebServiceError> Success: NowWebViewController objectFailure: NowWebServiceError object
``` private func webViewController(for url: URL) -> NowWebViewController? { guard let webService = webService else { debugPrint("Web service not initialized") return nil } let result = webService.makeWebViewController(for: url, delegate: self, theme: CarrascoWebTheme(nowUITheme: CarrascoTheme())) switch result { case .success(let viewController): return viewController case .failure(let error): debugPrint("Web view creation failed with error: \(error.localizedDescription)") } return nil } ``` ## NowWebService - preloadWebCache\(urls: \[URL\], completion: PreloadWebCacheCompletion? = nil\) throws Preloads a list of specified pages with cacheable resources in the background \(by NowWeb\) to improve initial load times. |Name|Type|Description| |----|----|-----------| |urls|Array of URL objects|URLs of the pages to preload.| |completion|PreloadWebCacheCompletion|Optional. Closure to inform the caller that the web pages have completed loading.| |Type|Description| |----|-----------| |None| | The following example shows how to use the webService.preloadWebCache\(\) function to pre-load specified pages. ``` private func preloadURLs(urls: [URL]) { guard let webService = webService else { debugPrint("Web service not initialized") return } do { try webService.preloadWebCache(urls: urls) { debugPrint("URLs did complete preloading") } } catch { debugPrint(error.localizedDescription) } } ```