PhoneGap Build和XMLHttpRequest

时间:2016-01-19 13:36:46

标签: javascript html html5 xmlhttprequest phonegap-build

作为背景 - 在此之前,我为iOS(Swift)编写了一些原生应用程序,但这是我第一个使用PhoneGap的应用程序。我的目标是华为P8 lite,运行Android 5.0。我正在使用PhoneGap Build。

所以这是我的问题: 我在网络服务器服务器上运行了一些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>

感谢您的时间和帮助!

1 个答案:

答案 0 :(得分:1)

@ F-丹尼尔,
你有一些常见的错误。

  1. 未设置构建版本。这有破坏您的代码的副作用,并且没有博客帖子让您知道这一点。尝试通过phonegap-version为您的构建设置版本。设置插件的版本。

  2. “未设置版本”的一个副作用是您必须使用whitelist插件及相关部件。它没有很好地记录。 (我有笔记。见下文。)注意:这可能会立即让你修复。

  3. 小心打开网站的套接字。 (注意,这是获取数据的推荐方式。但是,如果Google或Apple认为您正在编写网站包装器,他们可能会拒绝您的应用。(注意:我在下面的链接中直接引用Apple。)< / p>

  4. 要修复:

    在#1上,阅读:

    在#2, 您需要应用whitelist系统。从Cordova Tools 5.0.0开始(2015年4月21日)。对于 Phonegap Build ,这意味着自cli-5.1.1(2015年6月16日)

    将此添加到您的config.xml

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

    注意您的应用程序现在已不确定。由您来保护您的APP。

    将以下内容添加到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';">
    

    注意您的应用程序现在已不确定。由您来保护您的APP。

    当您准备好确保应用安全时,请阅读:
    HOW TO apply the Cordova/Phonegap the whitelist system

    在#3, 阅读#5(特别是#5的最后一部分,参见Apple的引用)
    Top Mistakes by Developers new to Cordova/Phonegap

    现在太累了加。我会在12小时内检查一下。