Ripple Phone Gap Emulator - методы, такие как exec () и stringify () - PullRequest
0 голосов
/ 17 ноября 2011

Плагин Ripple для Chrome эмулирует большинство API PhoneGap, но я использую стороннее программное обеспечение, которое использует API, такие как PhoneGap.exec () и PhoneGap.stringify (), и насколько я вижуЯ не получаю их в среде Ripple.

Мой обходной путь - взломать эти методы в PhoneGap на поздней стадии инициализации.Кажется, что это работает, но похоже на кучу.

Вопросы:

1).Есть ли хитрость в том, чтобы сделать такие API доступными в Ripple?

2).Любые предложения для чистого обходного пути?

Ответы [ 3 ]

1 голос
/ 15 декабря 2011

Я думаю, что пульсация все еще находится в бета-режиме, если вы говорите о пульсации от обода. Ранее я знал, что с реализациями rim html5 существовал конфигурационный файл, в котором вы могли бы указать службы, которые вы бы использовали с телефона ... Может быть, в этом же конфигурационном файле вы можете указать определенные методы, ключом к которым будет найти реализацию пульсации этого Конфигурационный файл и проверьте, существует ли эта опция ...

0 голосов
/ 26 сентября 2014

, глядя на код, я обнаружил, что когда PhoneGap хочет вызвать пульсацию плагина, перехватывает последний вызов (метод exec) и переопределяет собственную реализацию своей.

это код пульсации:

var _prompt = ripple('ui/plugins/exec-dialog'),
emulator = {
    "App": ripple('platform/cordova/2.0.0/bridge/app'),
    "Accelerometer": ripple('platform/cordova/2.0.0/bridge/accelerometer'),
    "Battery" : ripple('platform/cordova/2.0.0/bridge/battery'),
    "Compass": ripple('platform/cordova/2.0.0/bridge/compass'),
    "Camera": ripple('platform/cordova/2.0.0/bridge/camera'),
    ...   
};
module.exports = {
    add: function (service, module) {
        emulator[service] = module;
    },
    exec: function (success, fail, service, action, args) {
        try {
            emulator[service][action](success, fail, args);
        }
        catch (e) {
            console.log("missing exec:" + service + "." + action);
            console.log(args);
            console.log(e);
            console.log(e.stack);

        _prompt.show(service, action, success, fail);
        }
    }
};

, поэтому я делаю этот вызов перед использованием моего плагина:

ripple('platform/cordova/2.0.0/bridge').add("ToggleBluetooth", {
                                                                        start: function(){
                                                                            console.log("this is a native method call emulation");
                                                                            return true;
                                                                        },
                                                                        stop: function(){
                                                                            console.log("this is a native method call emulation");
                                                                            return true;
                                                                        }
                                                                    }
                                                                );

Таким образом, Ripple знает, что делать, а не выбрасывает исключение.

Я использую пульсацию 0.9.23

0 голосов
/ 16 сентября 2013

Я могу быть очень неправ, но я понимаю, что функция exec предназначена для выполнения нативного кода, поэтому Ripple будет чрезвычайно сложно реализовать его, если это вообще возможно.И stringify, кажется, был удален из последних версий Cordova (http://mail-archives.apache.org/mod_mbox/incubator-callback-commits/201201.mbox/%3C20120103185712.5EDCE315778@tyr.zones.apache.org% 3E ).

...