Отправьте запрос XHR из html — файла, завернутого в webview, с помощью javascript

#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