Когда я пытаюсь отобразить внешний интерфейс, разработанный с помощью 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
Загрузка страницы Vue3 в WebView в проекте Android. Проект Android запускается с пустым экраном рендеринга ⇐ Android
Форум для тех, кто программирует под Android
1728458409
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
Подробнее здесь: [url]https://stackoverflow.com/questions/79069035/loading-a-vue3-page-in-a-webview-in-an-android-project-android-project-launches[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия