Android webview загружает локальный javascript

Я пытаюсь загрузить файл javascript, хранящийся на устройстве, через файл html, который загружается через webview, но никогда не загружается. Я пробовал использовать прямой url, как обычно, в html, и также попробовал:

<script type="text/javascript" src="file:///android_asset/www/js/jsfile.js"/>

JavaScript также включен в настройках веб-просмотра и отлично работает, если у меня есть это на сервере.

Спасибо, если кто-нибудь может помочь.

Ответ 1

Привет, на самом деле, мне нужно напрямую вызвать js файл, потому что вы вызываете его из браузера, который считает папку ресурса своей корневой папкой. Вы должны использовать префикс "file:///" при вызове из java-кода. Попробуйте что-то вроде этого:

<script type="text/javascript" src="www/js/jsfile.js"/>

Ответ 2

Вы можете использовать loadDataWithBaseURL.

Поместите весь свой javascript в папку assets и укажите путь к файлу js относительно каталога ресурсов в тэге script (в html). Не ставьте косую черту в начале src.

Прочитайте html в строке (htmlStr), а затем загрузите его в веб-виде, как указано ниже.

webView.loadDataWithBaseURL("file:///android_asset/", htmlStr, "text/html", "UTF-8", null);

Это сработало для меня.