我有一个phonegap iOS应用程序,我把它移植到触摸屏上的webos上,除了我使用的一个iOS插件之外,这个应用程序工作得很好。它基本上将画布数据保存到照片卷中。根据我对webos的理解,我需要创建一个node.js服务,并将数据写入缓冲区,最后写入文件系统,这在论坛中有一个例子。然而,我不知道如何从我的phonegap应用程序调用所有这些。我相信我需要在我的index.html文件中有以下内容。
<script src="/opt/PalmSDK/Current/share/framework/enyo/1.0/framework/enyo.js" type="text/javascript"></script>
and something like
enyo.create({kind: "Main"}).renderInto(document.body); 我猜我还必须在js文件中拥有所有的“类”数据。但是,我如何从应用程序的js文件中迈出一小步,与创建的服务进行通信。我查看了PhoneGap1.0.js文件,发现它们正在以这种方式调用服务。
this.service = navigator.service.Request('palm://com.palm.applicationManager', {
method: 'launch',
parameters: {
id: 'com.palm.app.camera',
params: {
appId: 'com.palm.app.camera',
name: 'capture',
sublaunch: true,
filename: filename
}
},
onSuccess: successCallback,
onFailure: errorCallback
}); 但我也注意到这一切似乎都是莫名其妙,而我现在所做的是恩约,所以是的,我现在很困惑。
似乎在webos中调用服务应该很容易,比如这里有一串图像数据,并从我现有的phonegap应用程序中写入文件系统。而不必在恩约做任何事。有人有像这样的webos插件的示例,或者知道该在哪里指点我?
谢谢蒂姆
**最新情况
我现在已经创建了一个节点服务,如下所定义的,我认为它可以工作,我正在尝试调用该服务,但它没有到达它。测试应用程序运行在我的触摸屏上,但是当我按下按钮来保存图像时,我就没有进入这个服务。我试着跟踪在phegap0.0.1.js文件中对摄像机所做的操作--这是我的服务的一个副本,我是如何定义它的,以及我是如何调用它的。我做错了什么。
services.json =
"id": "com.tim.pgmojo1.service",
"description": "FileIO Service",
"services": [
{
"name": "com.tim.pgmojo1.service",
"description": "FileIO Service",
"commands": [
{
"name": "writefile",
"assistant": "WriteFileAssistant",
"public": true
}]
}]
}**服务代码
var libraries = MojoLoader.require({ name: "foundations", version: "1.0" }); var fs = IMPORTS.require("fs"); var sys = require('sys');var WriteFileAssistant = function() {}
WriteFileAssistant.prototype.run = function(future) {
var mypath = this.controller.args.thepath;
var mydata = this.controller.args.thedata;
console.log("in write file");
console.log("path=" + thepath);
console.log("image data=" + thedata);
var data = content.replace(/^data:image\/\w+;base64,/, "");
var buf = new Buffer(data, 'base64');
fs.writeFile('/media/internal/downloads/timimage.png', buf);
}我对服务的调用**
navigator.service.Request('palm://com.tim.pgmojo.service',{ this.service =this.service{方法:‘写文件’,参数:{
thepath: '/media/internal/downloads/timimage.png',
thedata: canvasData
},
onSuccess: mySuccess,
onFailure: myFailure
}); 目前,我的index.html文件中有这个,因为它只用于测试。
发布于 2012-02-01 00:56:25
Mojo仍然包含在TouchPad中。您可以使用与PhoneGap相同的服务调用函数。
发布于 2012-02-01 15:28:59
在Enyo中,对在线设备服务的访问由enyo.PalmService类处理.您可以看到一个包含node.js服务的应用程序的示例,以及如何在https://github.com/palm/txjs-fortunecookie上调用该服务。
https://stackoverflow.com/questions/9088132
复制相似问题