Загрузка страницы Vue3 в WebView в проекте Android. Проект Android запускается с пустым экраном рендерингаAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Загрузка страницы Vue3 в WebView в проекте Android. Проект Android запускается с пустым экраном рендеринга

Сообщение Anonymous »

Когда я пытаюсь отобразить внешний интерфейс, разработанный с помощью Vue 3, в приложении Android с помощью WebView, проект Android запускается с пустым экраном рендеринга. Logcat показывает следующую информацию журнала:
[INFO:CONSOLE(1)] "Access to script at 'file:///android_asset/vue_dist/assets/index-CMX_iLam.js' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, https, chrome-untrusted.", source: file:///android_asset/vue_dist/index.html (1)

Созданный мной проект Vue 3 открывается в локальном браузере с той же проблемой в консоли. Моим решением было запустить локальный HTTP-сервер, который успешно отображает компоненты Vue в браузере. Теперь мне нужно загрузить страницы, созданные с помощью Vue 3, с помощью WebView в проекте Android в Android Studio.
И код MainActivity в Android выглядит следующим образом. Как можно решить эту проблему?
import android.os.Bundle
import android.util.Log
import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.viewinterop.AndroidView

class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {
WebViewScreen()
}
}
}

@Composable
fun WebViewScreen() {
AndroidView(
modifier = Modifier.fillMaxSize(),
factory = { context ->
WebView(context).apply {
settings.javaScriptEnabled = true
settings.allowFileAccess = true
settings.domStorageEnabled = true
webViewClient = WebViewClient()
loadUrl("file:///android_asset/vue_dist/index.html")
}
}
)
}


Я попробовал добавить следующие разрешения в MainActivity, но все равно не смог загрузить компоненты Vue.
settings.javaScriptEnabled = true
settings.allowFileAccess = true
settings.domStorageEnabled = true


Подробнее здесь: https://stackoverflow.com/questions/790 ... t-launches
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»