我正在尝试创建一个可以从服务器请求某些数据的简单PhoneGap应用程序。我对服务器端代码非常陌生,我的目标仅仅是评估使用外部服务器的phonegap的可行性。
我的应用程序已经准备好了phonegap(使用Javascript编写,我正在使用PhoneGap Build并使用AVD来测试应用程序),但我能找到的唯一持久性方法是处理本地存储。所以要将我的问题分解为更明确的组成部分:
设置一个可以从我的phonegap应用程序访问的简单服务器是否有“快速而肮脏”的方式?
什么是首选请求方法?我一直在研究Ajax / REST / jQuery,但如果我是诚实的,我很难理解这些类型的请求在我的应用程序(或服务器端)中“存在”的位置?
我正在使用eclipse keplar,并且更喜欢避免使用命令提示符的方法。
答案 0 :(得分:1)
您是否更需要更多方法来制作持久性内容?那你可能想要考虑WebSQL: http://docs.phonegap.com/en/3.5.0/cordova_storage_storage.md.html#Storage
但是如果你真的需要一个虚拟服务器(你的问题的第1部分),那么这取决于你迄今为止的经验背景。正如您已经安装了PhoneGap,您可能已经安装了NodeJS,这意味着它是一个轻量级,快速且即时的"服务器
因此,您可以将此脚本保存在文件系统中的某个位置,例如/home/meee/dummy.js
:
var http = require('http');
http.createServer(function (req, res) {
var arguments = require('url').parse(req.url, true);
var query = arguments['query']; // JS Object with parsed GET string arguments
var command = '';
if (typeof query['command'] !== 'undefined') {
command = query['command'];
}
// Here would be the well designed command handler
var resultFromCommandHandler = "Work result for command: " + command;
var statusFromCommandHandler = "OK"; // what a liar
var response = { "status" : statusFromCommandHandler, "result" : resultFromCommandHandler };
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end( JSON.stringify(response) );
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
然后从命令行运行:
node /home/meee/dummy.js
> Server running at http://127.0.0.1:1337/
然后启动网络浏览器并输入以下网址:
http://127.0.0.1:1337/?command=getList&page=orders
浏览器会显示服务器的答案。所以你有最小的可思考服务器在运行。通过一些修改,您将在Eclipse中获得运行配置,以使Node与您的虚拟脚本一起运行。我甚至期望Node和Eclipse都有现成的插件,因为这个软件很受欢迎。
现在,从您的PhoneGap应用程序中,只需尝试调用URL并向命令处理程序添加一些有用的东西,然后就可以轻松地在您的应用程序和服务器之间进行交互。
此外,正如我提到您的经验,您可能安装了tomcat服务器,因此请使用此服务器。如果你有一个mac,可能会有一些Apache,只是尝试启动它。随着时间的推移,我开始使用TurnKeyLinux,这是一个在VMware / Fusion图像(http://www.turnkeylinux.org/)中的精彩微型LAMP安装
关于问题的第2部分,如何联系服务器:
现在,我建议忘记SOAP / REST等。只需在PhoneGap中用一个按钮编写一个小的HTML框架,然后单击该按钮的事件即可激活某个AJAX调用,使用JQuery实现。使用AJAX成功事件,在PhoneGap应用程序中显示服务器的结果。此设置是您的概念验证,可以轻松调试。
之后,尝试定义应用程序所需的一些用例和CRUD。从这里,您将获得所需的命令和参数,您可以将其实现到虚拟服务器中。
也许你必须做一些进一步的研究,继续这一点,阅读一些开源服务器应用程序,阅读一些定义和概念。请注意,编写Web服务器应用程序时存在许多缺陷,因此不要做出一些艰难的截止日期承诺,它不会在您的第一个应用程序中工作。此外,您将不得不尽快重新设计我们的虚拟HTML框架,以免扼杀意大利面条代码。
答案 1 :(得分:0)
对于已经使用Java但不想安装Node.js的人,我通常使用Spring引导和Java使用近0行代码:https://github.com/alessiop86/dummy-server
有很多指南答案 2 :(得分:0)
您可以尝试使用此代码 -
var express = require("express");
var app = express();
app.get("/", function(req, res){
res.send("Get methods");
});
app.use(express.static("public")); // put the static data folder name here which contain your UI code.
var server = app.listen(8081, function(){
var host = server.address().address;
var port = server.address().port;
console.log(host +" : "+port);
});
中的说明操作