Первоначально у меня были WebView Загрузка файлов локально с помощью файла: // Но я получил ошибки CORS, и, по поиску, я вижу, что я должен использовать WebViewAssetLoader вместо.
Проблема, с которой я сталкиваюсь с этим, заключается в том, что загрузчик, кажется, только обслуживает страницу над Https < /code>. В результате я в результате я нажимаю ошибку при попытке подключиться к небезопасному WebSocket:
»смешанный контент: страница https: // appassets. AndroidPlatform.net/assets/index.html 'был загружен на HTTPS, но попытался подключиться к конечной точке WebSocket. WS: // My-Server-IP '. Не предлагайте wss , но также кажется ненужным, учитывая, что это только когда -либо будет запущено в моей локальной сети.
Однако, если я сделаю myWebView.loadUrl ("http://appassets.androidplatform.net/assets/index.html") Затем страница не загружается, и я просто получаю страницу ошибки, говорящая net: err_name_not_resolved
Итак, возможно ли для WebViewassetLoader < /code> обслуживание страниц через http ?
файл mainactivity.kt выглядит так:
Код: Выделить всё
class MainActivity : ComponentActivity() {
@OptIn(ExperimentalTvMaterial3Api::class)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.layout)
val myWebView: WebView = findViewById(R.id.webview)
// Setup asset loader to handle local asset paths
val assetLoader = WebViewAssetLoader.Builder()
.addPathHandler("/assets/", WebViewAssetLoader.AssetsPathHandler(this))
.build();
// This was needed to fix the mime type for javascript files
myWebView.webViewClient = object : WebViewClient() {
override fun shouldInterceptRequest(
view: WebView,
request: WebResourceRequest
): WebResourceResponse? {
val interceptedWebRequest = assetLoader.shouldInterceptRequest(request.url)
interceptedWebRequest?.let {
if (request.url.toString().endsWith("js", true)) {
it.mimeType = "text/javascript"
}
}
return interceptedWebRequest
}
}
myWebView.settings.javaScriptEnabled = true
myWebView.loadUrl("https://appassets.androidplatform.net/assets/index.html")
}
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... t-resolved
Мобильная версия