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 .
Le fournit Mobile SDK une gestion transparente de l’authentification et de la gestion des sessions requises, tandis que l’API NowWebSDK fournit les fonctionnalités requises pour gérer les pages résidant sur votre ServiceNow instance. Ces pages web disposent de toutes les interactions dynamiques 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 et un NowSDK déjà initialisé. De plus, vous devez avoir importé NowWeb dans votre application. Vous devez conserver une référence à 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échargez les pages pour améliorer le temps de chargement de 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 initiaux de Now Web . L’exemple suivant montre comment utiliser la fonction webService.preloadWebCache() pour précharger la page mesp . Cette méthode prend 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 l’URL de la page initiale doit être chargée dans la vue. Cette URL doit pointer vers une page hébergée sur l’instance spécifiée ServiceNow .
Prise en charge du thème de couleur pour les éléments de l’interface utilisateur NowWeb
Vous pouvez spécifier un thème de couleur personnalisé qui s’applique à tous les éléments de l’interface utilisateur dans une vue lors de l’appel de la méthode launch () de NowWebService. Pour créer ce thème de couleur personnalisé, créez un type qui implémente l’interface NowWebTheme et transmettez-le dans le paramètre de thème de l’appel NowWebService.launch( ).
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)
}Pour plus d’informations sur l’application de thèmes de couleur dans une vue Web, reportez-vous à la section Utiliser NowUIColoring pour le thème NowWebTheme et NowChatTheme.