Как использовать внешнее изображение внутри приложения phonegap / jquerymobile - PullRequest
4 голосов
/ 01 декабря 2011

Я разрабатываю тестовое приложение phonegap / jquery-mobile (я новичок в этих технологиях) для Android, и я хочу показать в моем приложении изображение, хранящееся на интернет-сайте.Во время запуска приложения в avd я получаю это уведомление, когда помещаю в свой index.html этот элемент:

<img src="http://www.comolakeboats.it/images/stories/boats/gommone_12_150x100.jpg" width="120px;" />

Ошибка приложения - соединение с сервером было неудачным (файл: /// android_asset / www/index.html)

В log.cat я вижу эту ошибку:

E / DroidGap (337): DroidGap: ОШИБКА ВРЕМЕНИ!- вызов webViewClient

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

Чего мне не хватает?Существует решение (может быть, то же самое), подходящее и для Iphone?

Это мой код:

<body>

    <div data-role="page" id="home_it"> 
        <div data-role="header" data-theme="a" id="it">
            <h1>TEST</h1> 
            <div data-role="navbar" data-iconpos="right" data-theme="a">
                <ul>
                    <li><a href="tel://+3933333333">Tel:+3933333333</a></li> 
                    <li><a href="mailto:info@test.it?subject=Info">Email</a></li>   
                </ul>
            </div> 
            <div class="ui-body ui-body-c"><!--  ui-body-b">-->  
                <p>Some text</p>
                <button id="my_list_button">Mostra</button>
            </div>
        </div> 
        <div data-role="content"  class="ui-body">
            <ul data-role="listview" id="my_list">
                <li data-role="list-divider">My list</li>
                <li>
                    <a href="http://www.comolakeboats.it" rel="external">
                        <img src="http://www.comolakeboats.it/images/stories/boats/gommone_12_150x100.jpg" width="120px;" />
                        <h3>title foo foo</h3>
                        <p style="color:red">foo foo foo foo</p>
                    </a>
                </li>
            </ul>
        </div>
                    <div data-role="footer">
            <div data-role="navbar" data-iconpos="right" data-theme="a">
                <ul>
                    <li><a href="#home" data-icon="home">&#160;</a></li>    
                    <li><a id="exit-app" data-icon="back">&#160;</a></li>    
                </ul>
            </div>  
        </div>
    </div> 


</body>

Заранее спасибо

Ответы [ 6 ]

4 голосов
/ 01 декабря 2011

Вы действительно обновили белый список телефонной щели?который сообщает приложению, к каким URL он имеет доступ.Вы также можете добавить * , как описано здесь

Надеюсь, это поможет

2 голосов
/ 28 марта 2012

Если вы установите более высокие значения по умолчанию:

super.setIntegerProperty("loadUrlTimeoutValue", 60000);
super.loadUrl("file:///android_asset/www/index.html", 60000);

Время не истечет, но для запуска приложения понадобится много времени ...

0 голосов
/ 12 ноября 2015

У меня такая же проблема. Наконец, я обнаружил, что причина - настройка «Content-Security-Policy» в заголовке HTML !. Вы можете просто удалить строку следующим образом:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
0 голосов
/ 17 июля 2012

Я установил белый список в файле cordova.xml как «. *», Но он все еще отображает ту же ошибку, поэтому я попытался найти другие решения и выяснил это:

http://community.phonegap.com/nitobi/topics/phonegap_build_viewebclient_timeout_error_on_android_device

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

0 голосов
/ 01 декабря 2011

Несколько заметок, которые могут вам помочь:

  • index.html должен быть полным HTML-документом ...
  • Вы должны установить разрешения на использование Интернета, в AndroidManifest.xml
  • тестовое устройство должно иметь подключение к Интернету (сначала попробуйте открыть URL-адрес изображения в браузере устройства).
0 голосов
/ 01 декабря 2011

Может быть, самое простое, что вы можете сделать, это загрузить изображение и добавить его в свой проект. В этом случае просто сделайте атрибут src тега <img> ссылкой на путь изображения внутри вашего проекта.

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