как получить доступ к локальным данным с внешней веб-страницы? - PullRequest
3 голосов
/ 25 февраля 2011

Я пытаюсь получить доступ к данным внутри assets / css из внешнего файла HTML.

Процесс идет так:

<html> 
<head>
<meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, height=device-height, user-scalable=yes" />  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>ola</title> 

 <link rel="stylesheet" type="text/css" href="file:///android_asset/css/main.css" />
 <link rel="stylesheet" type="text/css" href="file:///android_asset/css/sch.css" />
 <script type="text/javascript" src="file:///android_asset/css/ethan.js" /> 
 <script type="text/javascript" src="scripts/allinone.js" /> 

</head> 
<body> 
  <input id="btnTest1" name="button" type="button" style="height:0px;width:0px;" /> 
</body> 
</html> 

Итак, дело в том, что я на самом деле вызываю файл HTML, используя ссылку (поскольку файл HTML отсутствует локально). Но main.css, sch.css и ethan.js локально присутствуют в папке assets / css.

То, что я пытаюсь сделать, это загрузить allinone.js, который, очевидно, является внешним, и остальные три файла, которые являются внутренними, и запустить скрипт.

Я нашел "file:///android_asset/css/main.css", но похоже, что он не работает.

Пожалуйста, помогите ....

1 Ответ

0 голосов
/ 19 марта 2012

Мне было бы интересно узнать больше о сценарии использования здесь.Насколько я понимаю:

  1. Вы загружаете файл HTML, размещенный извне, в веб-браузер Android
  2. Вам необходимо наложить некоторые локальные стили / сценарии, которые нельзя разместить навнешний сайт вместе с HTML (предположительно потому, что вы генерируете их динамически).

Если это так - и с учетом того, что логический подход, который вы задумывали использовать с помощью файла: // URI неработа - казалось бы, есть два варианта, каждый из которых использует API webView:

  1. Загрузите файл HTML из удаленного источника, измените его, затем установите его в качестве источника webView.Найдите тег удаленного HTML и вставьте туда свой локальный JS / CSS-код.
  2. Используйте метод WebView loadUrl для динамического внедрения CSS / Javascript (это кажется излишне сложным, если # 1 является опцией).Например:
mWebView.loadUrl("javascript:injectJavascript(js)");

где параметр 'js' - это некоторый встроенный Javascript, который вы загружаете в свой код Android, а injectJavascript - это метод в удаленном HTML-файле, который фактически вставляет его в вашу DOM.Возьмите аналогичный подход, чтобы вставить свой CSS ...

По общему признанию, эти подходы немного хакерские.В идеале вы должны использовать пользовательский метод класса WebView, такой как 'addCssToDom' или что-то в этом роде, но, насколько я вижу, такие методы недоступны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...