Classe NowWebService : iOS

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 2 minutes de lecture
  • La classe NowWebService fournit des fonctions qui permettent de parcourir des pages Web sur une ServiceNow instance.

    Tableau 1. Propriétés
    Nom Type Description
    configuration Configuration Now ServiceConfiguration Paramètres de configuration à utiliser lors de l’initialisation de l’instance NowWebService.

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

    Initialise une instance NowWebService.

    Tableau 2. Paramètres
    Nom Type Description
    configuration Configuration Now ServiceConfiguration Paramètres de configuration à utiliser lors de l’initialisation de l’instance NowWebService.
    coreServiceProvider (en anglais seulement) NowCoreServiceProviding Facultatif. Fournisseur de service à associer à l’instance NowWebService.

    Par défaut : nul

    L’exemple de code suivant montre comment appeler cette méthode.

    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 (pour l’URL : URL, délégué : NowWebViewControllerDelegate, thème : NowWebThemeable)

    Crée un objet UIViewController qui héberge la vue Web.

    Tableau 3. Paramètres
    Nom Type Description
    Pour l’URL URL URL de la page Web à charger. Cette page Web doit se trouver sur l’instance cible ServiceNow avec laquelle le service a été initialisé.
    délégué NowWebViewControllerDelegate Facultatif. Objet qui reçoit les événements de rappel du WebViewController vers l’application native.
    thème NowWebThemeable Facultatif. NowUIThemeable protocol à appliquer aux éléments d’interface utilisateur du contrôleur de vue, tels que la couleur.

    Par défaut : NowWebDefaultTheme(nowUITheme : NowUIDefaultTheme())

    Tableau 4. Renvoie
    Type Description
    Résultat <NowWebViewController, NowWebServiceError> Réussite : objet NowWebViewController

    Échec : objet NowWebServiceError

    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], complétion : PreloadWebCacheCompletion ? = nil) lève

    Précharge une liste de pages spécifiées avec des ressources pouvant être mises en cache en arrière-plan (par NowWeb) pour améliorer les temps de chargement initiaux.

    Tableau 5. Paramètres
    Nom Type Description
    URL Tableau d’objets d’URL URL des pages à précharger.
    achèvement PréchargementWebCacheCompletion Facultatif. Fermeture pour informer l’appelant que le chargement des pages Web est terminé.
    Tableau 6. Renvoie
    Type Description
    Aucun

    L’exemple suivant montre comment utiliser la fonction webService.preloadWebCache() pour précharger les pages spécifiées.

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