Использование Android WebView для загрузки внешнего HTML с локальными ресурсами (изображения, JavaScript)? - PullRequest
3 голосов
/ 27 августа 2011

Я хочу создать простое веб-приложение на Android, которое загружает определенные большие файлы, такие как Javascript и элементы пользовательского интерфейса, локально из каталога 'assets'.Однако я не могу использовать локальный каталог ресурсов при загрузке внешнего HTML.Таким образом, внешний сервер выдает что-то вроде этого:

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

И WebView будет использовать это, даже если сам сайт получен с внешнего сайта.Я знаю, что существуют угрозы безопасности, но есть ли способ сделать это, разрешив только определенные URL-адреса в конце приложения?

Можно ли как-нибудь это сделать?

1 Ответ

0 голосов
/ 27 августа 2011

Прежде всего вам необходимо скопировать все ресурсы куда-нибудь (например, во внешнее хранилище).

Затем, чтобы отфильтровать URL-адреса, вы должны переопределить метод

public boolean shouldOverrideUrlLoading(WebView view, String url);

в классе WebViewClient.

добавлено: Когда ваше приложение запускается, поместите ресурсы в / sdcard / somefolder / see getExternalFilesDir ()

в URL переопределения shouldOverrideUrlLoading примерно так:

file:///sdcard/somefolder/<your filename here>

это должно быть так же просто, как

public boolean shouldOverrideUrlLoading(WebView view, String url) {
   url = "file://" + context.getExternalFilesDir().getAbsolutePath() + "/" + url;
   super.shouldOverrideUrlLoading(view, url);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...