#javascript #java #php #android #webview
Вопрос:
У меня есть index.html файл содержит код CSS,HTML и JavaScript Код JavaScript отправляет запрос с помощью XMLHttpRequest в файл .php на сервере, файл .php, содержащий некоторые данные.
Я обертываю HTML-код в веб-представление приложения для Android в виде строки (не используя функцию loadUrl), используя код, который я нашел в этом источнике
Ява:
// Create an unencoded HTML string
// then convert the unencoded HTML string into bytes, encode
// it with Base64, and load the data.
String unencodedHtml =
"<html><body>'#' is the percent code for ‘#‘ </body></html>";
String encodedHtml = Base64.encodeToString(unencodedHtml.getBytes(),
Base64.NO_PADDING);
myWebView.loadData(encodedHtml, "text/html", "base64");
Также включена поддержка Интернета и JavaScript
<manifest ... >
<uses-permission android:name="android.permission.INTERNET" />
...
</manifest>
webSettings.setJavaScriptEnabled(true);
Но я не могу отправить запрос GET/POST из JavaScript внутри приложения в удаленный файл .php на сервере.
Все работает, если я загружаю index.html файл на сервер и отправить запрос в файл .php Я тоже могу отправить запрос без проблем с CORS с локального хоста.
Есть ли способ избежать переноса всего веб-сайта в WebView и использовать loadUrl вместо функции loadData, или я что-то упускаю?
Могу ли я отправлять запросы XHR/Fetch из приложения на сервер и получать данные в WebView?
Я все еще ищу ответ, но все еще не нашел рабочего решения
Комментарии:
1. Не уверен, но есть вероятность, что это может быть проблемой CORS. Вам следует заглянуть в журналы для получения дополнительной информации
2. Нет проблем с CORS при использовании localhost