【发布时间】:2012-01-31 22:42:08
【问题描述】:
我有一个 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
});
但我也注意到这似乎都是魔力,而我正在做的是 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 library = 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', { 方法:'写文件', 参数:{
thepath: '/media/internal/downloads/timimage.png',
thedata: canvasData
},
onSuccess: mySuccess,
onFailure: myFailure
});
目前我的 index.html 文件中有这个,因为它仅用于测试..
【问题讨论】: