2016-01-19 3 views
1

В качестве фона - до этого я написал несколько собственных приложений для iOS (Swift), но это мое первое приложение, использующее PhoneGap. Моя цель - Huawei P8 lite, работающая под управлением Android 5.0. И я использую PhoneGap Build.PhoneGap Build и XMLHttpRequest

Итак, вот моя проблема: У меня есть cgi-скрипты, запущенные на сервере веб-сервера. Я могу выполнить эти скрипты, просто открыв конкретный веб-сайт. Я написал небольшую функцию javascript, которая отправляет HttpRequest на сервер. PhoneGap-Build используется для создания приложения из моего html-кода.

Проблема в том, что она отлично работает на моем ноутбуке (через кабельное соединение или через WIFI), но как только я попробую его на своем телефоне (через WIFI), он ничего не делает. Вот моя функция:

function openGate() { 
    var xhttp; 
    if (window.XMLHttpRequest) { 
     xhttp = new XMLHttpRequest(); 
    } else { 
     alert("Error"); 
    } 
    xhttp.open("GET", "http://172.17.113.100/cgi-bin/main.py?mod=door&op=open", "true"); 
    xhttp.send(null); 
} 

Связанный HTML-файл загружается на моем мобильном устройстве. Эта функция вызывается при нажатии кнопки. Вот ассоциированный код:

<!DOCTYPE html> 
<html> 
<head> 
    <title>Steuerung-Screen</title> 
    <scripe src="js/steuerung.js" type="text/javascript"></script> 
    <link rel="stylesheet" type="text/css" href="css/steuerung.css" /> 
</head> 
<body> 
    <div class="Steuerung"> 
     <h1>Steuerung</h1> 
    </div> 
<div class="Control"> 
    <table> 
     <tr> 
      <td> 
       <button type="button" id="up" onClick="openGate();"> <img src="img/Arrow_Up_nice.png" alt=""> </button> 
      </td> 
     </tr> 
    </table> 
</div> 
</body> 

Спасибо за ваше время и вашу помощь!

+0

Вы используете плагин 'whitelist'? – JesseMonroy650

+0

Нет, не знаю, но я попытаюсь использовать его и разрешить все домены –

+0

Пожалуйста, ** ответьте на следующие вопросы в своем сообщении **. Это ваше первое приложение? Какова ваша целевая платформа и их целевые версии? Android 4,5,6? iOS 7,8,9? Используете ли вы [CLI, SDK или Build] (https://github.com/jessemonroy650/top-phonegap-mistakes/blob/master/new-to-Phonegap.md#001)? Как только вы ответите на вопрос * в сообщении *, ответьте в комментариях, поэтому я знаю, что вы добавили информацию в сообщение. Есть еще вопросы – JesseMonroy650

ответ

1

@ f-daniel,
У вас есть несколько распространенных ошибок.

  1. Не установлена ​​версия для вашей сборки. Это имеет побочный эффект взлома вашего кода, и нет сообщений в блогах, чтобы вы знали об этом. Попробуйте установить версию для своей сборки через phonegap-version. Установите версии для своих плагинов.

  2. Один побочный эффект от «не установки версии» - вы должны использовать плагин whitelist и связанные с ним части. Это не задокументировано. (У меня есть примечания. См. Ниже.) ПРИМЕЧАНИЕ. Это, скорее всего, поможет вам сразу же исправиться.

  3. Предостережение при открытии гнезда на веб-сайте. (Обратите внимание, что это рекомендуемый способ получения данных. Однако, если Google или Apple считают, что вы пишете обертку веб-сайта, они могут отклонить ваше приложение. (ПРИМЕЧАНИЕ. Я цитирую Apple непосредственно по этой ссылке ниже.)

К FIX:

На # 1, ЧТЕНИЕ:

На # 2, Вам необходимо применять систему whitelist. Требуется от Cordova Tools 5.0.0 (21 апреля 2015 г.).Для PhoneGap Построить, это означает, что с тех пор cli-5.1.1 (16 июня 2015)

Добавьте это в config.xml

<plugin name="cordova-plugin-whitelist"  source="npm" spec="1.1.0" /> 
<allow-navigation href="*" /> 
<allow-intent href="*" /> 
<access origin="*" /> <!-- Required for iOS9 --> 

ПРИМЕЧАНИЕ ваше приложение сейчас небезопасным. ЭТО ДО ВАС ДЛЯ БЕЗОПАСНОСТИ ВАШЕГО ПРИЛОЖЕНИЯ.

Добавьте следующие строки в index.html

<meta http-equiv="Content-Security-Policy" 
     content="default-src *; 
        style-src * 'self' 'unsafe-inline' 'unsafe-eval'; 
        script-src * 'self' 'unsafe-inline' 'unsafe-eval';"> 

ПРИМЕЧАНИЕ ваше приложение сейчас небезопасным. ЭТО ДО ВАС ДЛЯ БЕЗОПАСНОСТИ ВАШЕГО ПРИЛОЖЕНИЯ.

Когда вы будете готовы, чтобы сделать ваше приложение безопасным, прочитать:
HOW TO apply the Cordova/Phonegap the whitelist system

На # 3, Read # 5 (особенно последней части # 5, см цитату из Apple)
Top Mistakes by Developers new to Cordova/Phonegap

Слишком устал прямо сейчас, чтобы добавить. Я проверю это через 12 часов.