2013-08-28 1 views
1

Предисловие: Я использую Coffeescript и Haml и тестирую на своем телефоне Android с помощью сборки PhoneGap.PhoneGap 2.9.0 Загрузка внешних скриптов

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

%script{:type => 'text/javascript', :src => "http://192.168.5.112:3000/assets/mobile.js"} 

Я также попытался с помощью getScript JQuery, получить, и Ajax звонки:

$.getScript('http://192.168.5.112:3000/assets/mobile.js', alert('Success')) 

$.get 'http://192.168.5.112:3000/assets/mobile.js', (data) -> alert 'Success server' + data 

$.ajax 'http://192.168.5.112:3000/assets/mobile.js', 
    error: (jqXHR, textStatus, errorThrown) -> 
    alert('localError: ' + jqXHR + textStatus + errorThrown) 
    success: (data, textStatus, jqXHR) -> 
    alert('localSuccess: ' + data + textStatus + jqXHR) 

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

<access origin="http://192.168.5.112:3000" subdomains="true" /> 

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

Любые идеи приветствуются!

ответ

2

192.168 - это локальный IP-адрес. Когда вы запускаете его на своем ПК, он смотрит на ваш компьютер для файла. Когда вы запускаете его по телефону, он смотрит на телефон для файла. Это не будет работать. Всегда загружайте JS-файл и включайте его в свой проект. Если включить его в свой проект под папку а/затем включить расслоение плотной его в голову тег вашего HTML следующим образом:

<script src="js/myScript.js"></script> 

Нет необходимости в белый список доменов или что-нибудь.

Если файл JS является общедоступной (то есть: любой, а не только вы, можете получить к нему доступ через HTTP: //), то вы можете использовать:

<script src="http://www.serverWhereTheScriptIs.com/myScript.js"></script> 

Попытка загрузить сценарий (пример 2) могут иметь другие проблемы. Например, скажем, пользователь хочет использовать ваше приложение, но не имеет подключения к Интернету. Приложение будет мучить себя. Даже если у них есть возможность подключения, это увеличивает время загрузки приложения. Всегда лучше иметь более крупное приложение, потому что вы включили JS-библиотеку, чтобы иметь более медленное/нерабочее приложение.