【问题标题】:phonegap webos 3.0+phonegap webos 3.0+
【发布时间】: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 文件中有这个,因为它仅用于测试..

【问题讨论】:

    标签: node.js cordova webos


    【解决方案1】:

    Mojo 仍然包含在 TouchPad 中。您可以使用与 PhoneGap 相同的服务调用功能。

    【讨论】:

      【解决方案2】:

      在 Enyo 中,对设备上服务的访问由 enyo.PalmService 类型处理。您可以在 https://github.com/palm/txjs-fortunecookie 上查看包含 node.js 服务的应用示例以及如何调用此服务

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-01
        • 1970-01-01
        相关资源
        最近更新 更多