NowWebService-Klasse – iOS

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 1 Minute Lesedauer
  • Die NowWebService -Klasse bietet Funktionen, die das Durchsuchen von Webseiten in einer ServiceNow -Instanz ermöglichen.

    Tabelle : 1. Eigenschaften
    Name Typ Beschreibung
    konfigurieren NowServiceConfiguration Konfigurationsparameter, die beim Initialisieren der NowWebService-Instanz verwendet werden sollen.

    NowWebService – init(configuration: NowServiceConfiguration, coreServiceProvider: NowCoreServiceProvider? = nil)

    Initialisiert eine NowWebService-Instanz.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    konfigurieren NowServiceConfiguration Konfigurationsparameter, die beim Initialisieren der NowWebService-Instanz verwendet werden sollen.
    coreServiceProvider NowCoreServiceProvider Optional. Service Provider, der der NowWebService-Instanz zugeordnet werden soll.

    Standard: nil

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    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(für url: URL, delegierter: NowWebViewControllerDelegate, Thema: NowWebThemeable)

    Erstellt ein UIViewController-Objekt, das die Webansicht hostet.

    Tabelle : 3. Parameter
    Name Typ Beschreibung
    für URL URL URL der zu ladenden Webseite. Diese Webseite muss sich in der Zielinstanz ServiceNow befinden, mit der der Service initialisiert wurde.
    Delegierter NowWebViewControllerDelegate Optional. Objekt, das Rückruf-Events vom WebViewController in der nativen Anwendung empfängt.
    Thema NowWebThemeable Optional. NowUIThemeable-Protokoll, das auf die UI-Elemente des Ansichts-Controllers angewendet werden soll, z. B. Farbe.

    Standard: NowWebDefaultTheme(nowUITheme: NowUIDefaultTheme())

    Tabelle : 4. Ergebnisse
    Typ Beschreibung
    Ergebnis<NowWebViewController, NowWebServiceError> Erfolg: NowWebViewController-Objekt

    Fehler: NowWebServiceError-Objekt

    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], abgeschlossen: PreloadWebCacheCompletion? = nil) wird ausgelöst

    Lädt eine Liste der angegebenen Seiten mit zwischenspeicherbaren Ressourcen im Hintergrund (von NowWeb) vorab, um die anfänglichen Ladezeiten zu verbessern.

    Tabelle : 5. Parameter
    Name Typ Beschreibung
    URLs Array von URL-Objekten URLs der Seiten, die vorab geladen werden sollen.
    Abschluss PreloadWebCacheCompletion Optional. Abschluss, um den Aufrufer darüber zu informieren, dass das Laden der Webseiten abgeschlossen ist.
    Tabelle : 6. Ergebnisse
    Typ Beschreibung
    Keine

    Das folgende Beispiel zeigt, wie die Funktion webService.preloadWebCache() verwendet wird, um angegebene Seiten vorab zu laden.

    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)
      }
    }