NowWebService class - iOS
The NowWebService class provides functions that enable the browsing of web pages on a ServiceNow instance.
| Name | Type | Description |
|---|---|---|
| configuration | NowServiceConfiguration | Configuration parameters to use when initializing the NowWebService instance. |
NowWebService - init(configuration: NowServiceConfiguration, coreServiceProvider: NowCoreServiceProviding? = nil)
Initializes a NowWebService instance.
| Name | Type | Description |
|---|---|---|
| configuration | NowServiceConfiguration | 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 | 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 object Failure: 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)
}
}