JavaScript — гибридный плагин приложения Enyo работает неисправно

Я создал такой плагин PDK:

#include <iostream>
#include <fstream>

#include "PDL.h"#include "SDL.h"
#define forever for(;;)

using namespace std;

PDL_bool changeUserAgent(PDL_JSParameters * params)
{
ofstream s("/media/internal/myfile.txt");
s << "Some content";
s.close();
return PDL_TRUE;
}

int main(int argc, char** argv)
{
int err = SDL_Init(SDL_INIT_VIDEO);
if ( err )
{
cerr << "Could not init SDL: " << SDL_GetError();
return 1;
}

PDL_Init(0);

PDL_RegisterJSHandler("changeUserAgent", changeUserAgent);
PDL_JSRegistrationComplete();
PDL_CallJS("ready", NULL, 0); //for enyo

atexit(SDL_Quit);
atexit(PDL_Quit);

SDL_Event Event;
bool paused = false, gotEvent;

forever
{
if (paused)
{
SDL_WaitEvent(&Event);
gotEvent = true;
}
else
{
gotEvent = SDL_PollEvent(&Event);
}

while (gotEvent)
{
switch (Event.type)
{
case SDL_ACTIVEEVENT:
if (Event.active.state == SDL_APPACTIVE) {
paused = !Event.active.gain;
}
break;

case SDL_QUIT:
// We exit anytime we get a request to quit the app
// all shutdown code is registered via atexit() so this is clean.
exit(0);
break;

default:
break;
}
}

gotEvent = SDL_PollEvent(&Event);
}

return 0;
}

В энё я звоню

enyo.kind(
{
name: "UserAgentTool",
kind: enyo.VFlexBox,
components:
[
// UI components
{
kind: enyo.Hybrid,
name: "plugin",
executable: "UserAgentTool-plugin"}
],
uaclick: function(inSender)
{
this.$.plugin.callPluginMethodDeferred(null, "changeUserAgent")
enyo.windows.addBannerMessage("User agent changed to " + inSender.getUserAgent(), '{}')
}
});

Кнопки пользовательского интерфейса — новый вид

enyo.kind(
{
name: "DeviceButton",
kind: "Button",
// some other properties
onclick: "uaclick",
})

Когда я нажимаю кнопку DeviceButton, баннер поднимается успешно. Это показывает, что uaclick «слот» выполняется. Но файл «/media/internal/myfile.txt» не создается.
Что я делаю неправильно?

Спасибо,
Marcin

РЕДАКТИРОВАТЬ: Как я должен использовать обратные вызовы? Я действительно новичок Enyo 🙁 Это так же, как с «onclick»?

Мой appinfo.json для приложения Enyo:

{
"id": "com.palm.marmistrz.useragenttool",
"version": "1.0.0",
"vendor": "Marcin Mielniczuk",
"type": "web",
"main": "index.html",
"title": "User Agent Tool",
"icon": "icon.png",
"uiRevision":2
}

У меня нет appinfo.json для плагина. Это просто исполняемый файл. ls -l в каталоге:

rw-r--r-- 1 marcin marcin  215 Nov  2 13:09 appinfo.json
drwx------ 3 marcin marcin 4096 Nov  7 15:10 build
-rw-r--r-- 1 marcin marcin  100 Oct 31 18:57 depends.js
-rw-r--r-- 1 marcin marcin   21 Oct 13 14:45 framework_config.json
drwxr-xr-x 2 marcin marcin 4096 Oct 13 14:44 images
-rw-r--r-- 1 marcin marcin  295 Oct 13 14:44 index.html
drwx------ 2 marcin marcin 4096 Nov  7 15:08 plugin
drwxr-xr-x 2 marcin marcin 4096 Nov  7 15:06 source
-rw-r--r-- 1 marcin marcin 8884 Nov  6 17:41 UserAgentTool-plugin

build это каталог для сборки плагина
изображения пустые
плагин является источником плагинов
источник является источником Enyo

Я сделал это неправильно?

Спасибо!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]