私は、PhoneGapがプラグインリプルを呼び出そうとしているときに、最後の呼び出し(execメソッド)をキャッチして、そのネイティブ実装をオーバーライドしていることがわかりました。
これはリップルコードです:リップルが例外をスローするのではなく、何をすべきかを知っている。このように
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;
}
}
);
:
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);
}
}
};
はので、私は私のプラグインを使用する前に、この呼び出しを行います。
私はこれまでのところ、私は単純に不足しているメソッドのコードを持っていない使用していたバージョンを言うことができるようにリップル0.9.23
おかげで、使用しています。 – djna