Afficher les pages Web hébergées sur votre ServiceNow instance
Vous pouvez afficher les pages Web hébergées au sein de votre ServiceNow instance dans votre application native Android .
L’API Mobile SDKNowWebSDK fournit les fonctionnalités requises pour gérer les pages résidant sur votre ServiceNow instance. Ces pages web ont toutes les interactions dynamiques qui sont possibles sur la ServiceNow plateforme.
Pour utiliser ces fonctionnalités, vous devez d’abord créer une instance de NowWebService. Pour ce faire, vous devez appeler la méthode makeWebService() et fournir l’URL à votre ServiceNow instance ainsi qu’à un NowSDK déjà initialisé. En outre, vous devez avoir importé NowWeb dans votre application. Vous devez conserver une référence au NowWebService aussi longtemps que vous utilisez le service NowWeb .
Voici un exemple de création d’un objet NowWebService :
/**
* 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 }
}
}Précharger les pages pour améliorer le temps de chargement NowWeb
Vous pouvez précharger des pages avec des ressources pouvant être mises en cache en arrière-plan pour améliorer les temps de chargement NowWeb initiaux. L’exemple suivant montre comment utiliser la fonction webService.preloadWebCache() pour précharger la page mesp . Cette méthode utilise une liste d’URI pour pré-extraire plus de pages.
suspend fun preloadNowWeb() {
val webService = sdkmanager.getNowWebService()
webService.preloadWebCache(listOf(URI("mesp")))
}
Créer des vues pour afficher du contenu Web
Une fois que vous avez instancié une instance de NowWebService, vous pouvez l’utiliser pour lancer une activité afin d’afficher les pages Web hébergées sur votre ServiceNow instance.
L’exemple suivant montre comment lancer une activité NowWeb :
//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{})
}
}
}Dans cet exemple, url il s’agit de l’URL de la page initiale à charger dans la vue. Cette URL doit pointer vers une page hébergée sur l’instance spécifiée ServiceNow .
Prise en charge des thèmes de couleur pour les éléments d’interface utilisateur NowWeb
Vous pouvez spécifier un thème de couleur personnalisé qui s’applique à tous les éléments d’interface utilisateur d’une vue lors de l’appel de la méthode launch() NowWebService. Pour créer ce thème de couleur personnalisé, créez un type qui implémente l’interface NowWebTheme et passez-le dans le paramètre de thème de l’appel NowWebService.launch().
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
})
}Pour plus d’informations sur l’application de thèmes de couleur dans une vue Web, reportez-vous à Utiliser NowUIColoring pour le thème NowWebTheme et NowChatTheme.