package com.example.app import android.os.Bundle import android.webkit.WebResourceRequest import android.webkit.WebResourceResponse import android.webkit.WebView import android.webkit.WebViewClient import androidx.appcompat.app.AppCompatActivity import androidx.webkit.WebViewAssetLoader class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val webView = WebView(this) webView.settings.javaScriptEnabled = true webView.settings.domStorageEnabled = true // Use WebViewAssetLoader to serve files from /assets/ over a secure origin. val assetLoader = WebViewAssetLoader.Builder() .addPathHandler("/assets/", WebViewAssetLoader.AssetsPathHandler(this)) .build() webView.webViewClient = object : WebViewClient() { override fun shouldInterceptRequest(view: WebView?, request: WebResourceRequest?): WebResourceResponse? { if (request == null) return null return assetLoader.shouldInterceptRequest(request.url) } } // Load the app via the mapped secure origin so fetch() requests are allowed webView.loadUrl("https://appassets.androidplatform.net/assets/index.html") setContentView(webView) } }