Zeigen Sie Webseiten an, die auf Ihrem gehostet werden ServiceNow Instanz
Sie können Webseiten anzeigen, die in gehostet werden ServiceNow Instanz in Ihrer nativen Instanz Android Anwendung.
Die Mobile SDK Bietet eine nahtlose Verarbeitung der erforderlichen Authentifizierung und Sitzungsverwaltung, während NowWebSDK Die API bietet die Funktionalität, die zum behandeln von Seiten auf Ihrem erforderlich ist ServiceNow Instanz. Diese Webseiten verfügen über alle dynamischen Interaktionen, die auf der möglich sind ServiceNow Plattform.
Um diese Funktionen zu verwenden, müssen Sie zuerst eine Instanz von erstellen NowWebservice . Dazu müssen Sie anrufen MakeWebservice() Methode und geben Sie die URL an ServiceNow Instanz und bereits initialisiert Now-SDK . Außerdem müssen Sie importiert haben NowWeb In Ihrer Anwendung. Sie sollten einen Verweis auf enthalten NowWebservice Solange Sie verwenden NowWeb Service.
Das folgende Beispiel zeigt, wie ein NowWebService-Objekt erstellt wird:
/**
* 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 vorab, um die NowWeb-Ladezeit zu verbessern
Sie können Seiten mit zwischenspeicherbaren Ressourcen im Hintergrund vorladen, um die anfängliche Verbesserung zu verbessern NowWeb Ladezeiten. Das folgende Beispiel zeigt die Verwendung von Webservice.preloadWebCache() Funktion zum Vorladen von Mesp Seite. 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, um Webinhalte anzuzeigen
Nachdem Sie eine Instanz von instanziiert haben NowWebservice , Können Sie damit eine Aktivität zum Anzeigen von Webseiten starten, die auf Ihrem gehostet werden ServiceNow Instanz.
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 urlIst die URL der anfänglichen Seite, die in der Ansicht geladen werden soll. Diese URL muss auf eine Seite verweisen, die auf dem angegebenen gehostet wird ServiceNow Instanz.
Unterstützung von Farbdesigns für NowWeb-UI-Elemente
Sie können beim Aufrufen des NowWebservice ein anwenderdefiniertes Farbdesign angeben, das für alle UI-Elemente in einer Ansicht gilt Starten () Methode. Um dieses anwenderdefinierte Farbdesign zu erstellen, erstellen Sie einen Typ, der implementiert NowWebTheme Schnittstelle erstellen und im Designparameter von übergeben NowWebservice.Start() Rufen Sie an.
suspend fun launchNowWeb() {
val webService = getNowWebService()
val webTheme = object : NowWebTheme {
override val brand: Int
get() = Color.BLUE
override val textPrimary: Int
get() = Color.BLACK
//Override remaining theme colors
}
webService?.launch(activity, URL("https://instance-name.service-now.com"), webTheme)
}Weitere Informationen zum Anwenden von Farbthemen in einer Webansicht finden Sie unter Verwenden Sie NowUIColoring, um NowWebTheme und NowChatTheme zu gestalten.