Zeigen Sie Webseiten an, die in Ihrer Instanz ServiceNow gehostet werden

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 2 Minuten Lesedauer
  • Sie können Webseiten, die in Ihrer Instanz ServiceNow gehostet werden, in Ihrer nativen Anwendung Android anzeigen.

    Mobile SDK ermöglicht eine nahtlose Abwicklung der erforderlichen Authentifizierung und Sitzungsverwaltung, während die NowWebSDK -API die erforderlichen Funktionen für die Verarbeitung von Seiten bereitstellt, die sich in Ihrer Instanz ServiceNow von befinden. Diese Webseiten weisen alle dynamischen Interaktionen auf, die auf der Plattform ServiceNow möglich sind.

    Um diese Funktionen zu verwenden, müssen Sie zuerst eine Instanz des NowWebServiceerstellen. Dazu müssen Sie die Methode makeWebService() aufrufen und die URL zu Ihrer Instanz ServiceNow sowie ein bereits initialisiertes NowSDKbereitstellen. Außerdem müssen Sie NowWeb in Ihre Anwendung importiert haben. Sie sollten einen Verweis auf NowWebService solange speichern, wie Sie den NowWeb -Service verwenden.

    Im Folgenden finden Sie ein Beispiel für die Erstellung eines NowWebService-Objekts:

    /**
     * Helper class used to handle different Now service instances.
     */
    @Singleton
    class SdkManager @Inject constructor() {
    
        private var nowWebService: NowWebService? = null
    
        /**
         * Create the NowWebService once in the lifetime of the application inside the Application class or
         * another manager class that will be injected into other classes via dagger/hilt.
         * NowWebService should be created after initializing the NowSDK
         */
        suspend fun getNowWebService(): NowWebService? {
            if (nowWebService != null) return nowWebService
    
            return NowWebSDK.makeWebService(URL("https://instance-name.service-now.com")).getOrThrow()
                .also { this.nowWebService = it }
        }
    }

    Laden Sie Seiten vor, um die Ladezeit von NowWeb zu verbessern

    Sie können Seiten mit zwischenspeicherbaren Ressourcen im Hintergrund vorab laden, um die anfänglichen Ladezeiten von NowWeb zu verkürzen. Das folgende Beispiel zeigt, wie Sie mit der Funktion webService.preloadWebCache() die MESP -Seite vorab laden. Diese Methode verwendet eine Liste von URIs, um weitere Seiten vorab abzurufen.

    suspend fun preloadNowWeb() {
      val webService = sdkmanager.getNowWebService()
      webService.preloadWebCache(listOf(URI("mesp")))
    }

    Erstellen Sie Ansichten zum Anzeigen von Webinhalten

    Nachdem Sie eine Instanz von NowWebServiceinstanziiert haben, können Sie damit eine Aktivität zum Anzeigen von Webseiten starten, die in Ihrer Instanz ServiceNow gehostet werden.

    Das folgende Beispiel zeigt, wie eine NowWeb-Aktivität gestartet wird:

    //Activity that will start the NowWeb
    class MainActivity : AppCompatActivity() {
    
      @Inject
      lateinit var sdkManager: SdkManager
    
      override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    
        // Start NowWeb
        lifecycleScope.launch {
          sdkManager.getNowWebService()?.launch(this@MainActivity, URL("https://instance-name.service-now.com"), object : NowWebTheme{})
        }
      }
    }

    In diesem Beispiel ist url die URL der ersten Seite, die in der Ansicht geladen werden soll. Diese URL muss auf eine Seite verweisen, die auf der angegebenen Instanz ServiceNow gehostet wird.

    Unterstützung für Farbdesigns von NowWeb-UI-Elementen

    Sie können ein anwenderdefiniertes Farbdesign angeben, das für alle UI-Elemente in einer Ansicht gilt, wenn Sie die NowWebService- Startmethode () aufrufen. Um dieses anwenderdefinierte Farbdesign zu erstellen, erstellen Sie einen Typ, der die NowWebTheme- Schnittstelle implementiert, und übergeben Sie ihn im Designparameter des NowWebService.launch() -Aufrufs.

    lifecycleScope.launch {
      sdkManager.getNowWebService()?.launch(this@MainActivity, URL("https://instance-name.service-now.com"), object : NowWebTheme {
        override val brand: NowUIAdaptiveColor
          // Setting lightColor only. For dark theme default color will be used
          get() = NowUIAdaptiveColor(lightColor = Color.BLACK)
    
        override val primary: NowUIAdaptiveColor
          // Setting both lightColor and darkColor
          get() = NowUIAdaptiveColor(lightColor = Color.BLACK, darkColor = Color.WHITE)
    
        // Override the rest of color variables
      })
    }

    Weitere Informationen zum Anwenden von Farbdesigns in einer Webansicht finden Sie unter Verwenden Sie NowUIColoring, um NowWebTheme und NowChatTheme zu gestalten.