---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# ServiceNowインスタンスでホストされている Web ページを表示します

# ServiceNowインスタンスでホストされている Web ページを表示します {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：5分

ServiceNow インスタンス内でホストされている Web ページをネイティブAndroidアプリケーションで表示できます。
Mobile SDK は必要な認証とセッション管理のシームレスな処理を提供し、[NowWebSDK](https://servicenow-prod.fluidtopics.net/4J8_BrT5pDBlOrtxm7NY5w#NowWebSDKAndroidAPI "NowWebSDK クラスは、ServiceNow インスタンスでホストされている Web ページをネイティブ Web ビューと Cabrillo に読み込むことができる単一の関数を提供します。ログイン Web ページからユーザーにインスタンスへのログインを強制する代わりに、ユーザー認証とセッション管理を自動的に処理します。") API は ServiceNow インスタンスに存在するページの処理に必要な機能を提供します。これらのWebページには、 ServiceNow プラットフォームで可能なすべての動的なインタラクションがあります。

これらの機能を使用するには、最初に NowWebService のインスタンスを作成する必要があります。これを行うには、 [makeWebService()](https://servicenow-prod.fluidtopics.net/4J8_BrT5pDBlOrtxm7NY5w#NWebSDK-makeWebService_S_S_S_S "NowWeb サービスを作成します。") メソッドを呼び出し、 ServiceNow インスタンスへの URL と初期化済みの `NowSDK` を指定する必要があります。さらに、アプリケーション内に `NowWeb` をインポートしておく必要があります。`NowWeb` サービスを使用している限り、NowWebService への参照を保持する必要があります。

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

## ページをプリロードして NowWeb のロード時間を短縮する

キャッシュ可能なリソースを含むページをバックグラウンドでプリロードして、 NowWeb の初期読み込み時間を短縮できます。次の例は、 webService.preloadWebCache() 関数を使用して `mesp` ページをプリロードする方法を示しています。このメソッドは、URI のリストを取得して、より多くのページをプリフェッチします。

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

## Web コンテンツを表示するビューの作成

NowWebService のインスタンスを作成したら、それを使用してアクティビティを起動し、ServiceNowインスタンスでホストされている Web ページを表示できます。

次の例は、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{})
        }
      }
    }

この例では、 url はビュー内に読み込む最初のページの URL です。この URL は、指定された ServiceNow インスタンスでホストされているページを指す必要があります。

## NowWeb UI 要素のカラーテーマのサポート

NowWebService launch () メソッドを呼び出すときに、ビュー内のすべての UI 要素に適用されるカスタムの配色テーマを指定できます。このカスタムカラーテーマを作成するには、 NowWebTheme インタフェースを実装する型を作成し、 NowWebService.launch() 呼び出しのthemeパラメータに渡します。  

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

Web ビュー内でカラー テーマを適用する方法の詳細については、「 [NowUIColoring を使用して NowWebTheme と NowChatTheme をテーマ化する](https://servicenow-prod.fluidtopics.net/TWHQQl8o9OQuuhEED~LDSA "NowUIColoring インターフェイスには、すべての NowSDK モジュールで使用されるすべての色が含まれています。")」を参照してください。

