39 lines
1.3 KiB
Kotlin
39 lines
1.3 KiB
Kotlin
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)
|
|
}
|
|
}
|