PhoneGap Webos 3.0+
У меня есть приложение 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, скажем, вот строка данных изображения и записать ее в файловую систему из моего существующего приложения телефонной пробелы. и не нужно делать все в enyo. У кого-нибудь есть образец плагина для веб-сайтов, подобного этому, или знаете, куда мне указать?
спасибо тим
** Обновление
Теперь я создал службу узла, как определено ниже, я думаю, что это работает, и я пытаюсь сделать вызов службе, но она не доходит до него. тестовое приложение работает на моей сенсорной панели, но когда я нажимаю кнопку, чтобы сохранить изображение, я не попадаю в сервис. Я попытался проследить, что было сделано для камеры в файле 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", версия: "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', {method: 'writefile', параметры: {
thepath: '/media/internal/downloads/timimage.png',
thedata: canvasData
},
onSuccess: mySuccess,
onFailure: myFailure
});
В настоящее время у меня есть это в моем файле index.html, так как это только для тестирования..
2 ответа
Моджо все еще включен в TouchPad. Вы можете использовать те же функции вызова сервисов, что и PhoneGap.
В Enyo доступ к службам на устройстве обрабатывается видом enyo.PalmService. Вы можете увидеть пример приложения с включенной службой node.js и способами звонков на эту службу по адресу https://github.com/palm/txjs-fortunecookie