我有一个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文件中执行一小步以与创建的服务进行通信。我查看了phonegap 1.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
});
但是我也注意到它似乎都是mojo,我正在做的是enyo,所以是的,我很困惑的那一刻......
似乎在webos中调用服务应该很容易,比如这里是一串图像数据,并从我现有的phonegap应用程序写入文件系统。而且不必在enyo做任何事情。有没有像这样的webos插件的样本或知道在哪里指点我?
谢谢蒂姆
* *更新
我现在已经创建了一个节点服务,如下所定义,我认为这有效,我正在尝试调用该服务,但它没有达到它。测试应用程序在我的触摸板上运行,但当我按下按钮保存图像时,我没有进入服务。我试着按照phonegap0.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);
}
我打电话给服务* *
this.service = navigator.service.Request('palm://com.tim.pgmojo.service',{ 方法:'writefile', 参数:{
thepath: '/media/internal/downloads/timimage.png',
thedata: canvasData
},
onSuccess: mySuccess,
onFailure: myFailure
});
目前我的index.html文件中有这个,因为它仅用于测试..
答案 0 :(得分:0)
Mojo仍然包含在TouchPad中。您可以使用与PhoneGap相同的服务调用功能。
答案 1 :(得分:0)
在Enyo中,对enyo.PalmService类型处理对设备上服务的访问。您可以查看包含node.js服务的应用示例,以及如何在https://github.com/palm/txjs-fortunecookie
对此服务进行调用