NowWebService-Klasse – iOS

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 1 Minute Lesedauer
  • Die Klasse NowWebService stellt Funktionen bereit, die das Durchsuchen von Webseiten in einer Instanz ServiceNow ermöglichen.

    Tabelle : 1. Eigenschaften
    Name Typ Beschreibung
    konfigurieren NowServiceKonfiguration 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 NowServiceKonfiguration Konfigurationsparameter, die beim Initialisieren der NowWebService-Instanz verwendet werden sollen.
    coreServiceProvider NowCoreServicebereitstellung Optional. Service Provider, der der NowWebService-Instanz zugeordnet werden soll.

    Standard: null

    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 auf der Zielinstanz ServiceNow befinden, mit der der Service initialisiert wurde.
    Delegierter NowWebViewControllerDelegierter Optional. Objekt, das Rückrufereignisse vom WebViewController in die native 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) löst aus

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

    Tabelle : 5. Parameter
    Name Typ Beschreibung
    URLs Array von URL-Objekten URLs der vorab zu ladenden Seiten
    Abschluss PreloadWebCacheCompletion Optional. Schließen, um den Anrufer zu informieren, dass die Webseiten geladen wurden.
    Tabelle : 6. Ergebnisse
    Typ Beschreibung
    Keine

    Das folgende Beispiel zeigt, wie Sie mit der Funktion webService.preloadWebCache() angegebene Seiten vorab 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)
      }
    }