PhoneGap中的HTTP方法

时间:2012-01-04 13:23:45

标签: cordova http-get

在PhoneGap中进行HTTP GET的最佳方法是什么?我不想为此使用Java,所以现在的问题是它是应该在jQuery中还是在JavaScript中完成。我读到PhoneGap中的JavaScript主要用于UI事件。有没有其他方法可以在PhoneGap中完成HTTP GET?

编辑:在Andrew Lunny撰写的书中( PhoneGap初学者指南),作者提到并提供了有关如何利用Twitters搜索API访问远程资源的示例 - 向服务器发出HTTP请求。在这种情况下,它对我来说不是很有用,因为他将JSON对象作为服务器的响应。在我的应用程序中,我需要严格的HTML身体作为回应。

编辑(由codemonkey和Simon MacDonald提出):

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.css" />  
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.3.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.js"></script>

<script type="text/javascript">
$.get('http://www.google.com', function(data) {
      alert(data);
    });
</script>

在这种情况下,提案中提出了问题:

我应该使用外部库(jQuery-mobile / jQuery)还是将它们包含在项目中更好。当然,对于第一个提案,我会强制用户每次强制使用它们时下载库,这样效率有点低,或者我应该将它们包含在项目中?在这种情况下,项目(文件系统)中放置jQuery库的正确位置是什么,' www ',' libs ',' res '等等?

与Simon MacDonald的提议一样:

<script>
function get() {
        var request = new XMLHttpRequest();
        request.open("GET", "http://www.google.com", true);
        request.onreadystatechange = function() {
            if (request.readyState == 4) {
                if (request.status == 200 || request.status == 0) {
                    // -> request.responseText <- is a result
                }
            }
        }
        request.send();
    }
</script>

优势:不需要额外的库

2 个答案:

答案 0 :(得分:4)

嗯,你可以使用安德鲁写的内容,因为没有理由不能从远程网址获取html代码而不是JSON代码。您可以使用jQuery来执行GET,但如果您不需要添加该库,则可以直接使用XHR。

这是我写的快速教程:

http://simonmacdonald.blogspot.com/2011/12/on-third-day-of-phonegapping-getting.html

在线:

var tweets = JSON.parse(request.responseText);
你会这样做:

var myBody = request.responseText;

因为它是您请求的页面的完整HTML。

答案 1 :(得分:0)

我认为jQuery是你最好的选择。 PhoneGap不提供任何可以发出GET请求的内容。它的主要作用是允许您的HTML / JS应用程序访问本机资源。