2011-11-17 12 views
0

ChromeのRippleプラグインはPhoneGap APIのほとんどをエミュレートしますが、PhoneGap.execなどのAPIを使用するサードパーティのソフトウェアを使用しています()とPhoneGap.stringify()と私はリップル環境でそれらを取得していないことがわかります。Ripple Phone Gapエミュレータ - exec()やstringify()などのメソッド

私の回避策は、初期化の後半にPhoneGapにこれらのメソッドをハックすることです。これはうまくいくように見えますが、くぼみのように感じます。

質問:

1)。そのようなAPIをRippleで利用できるようにするためのトリックはありますか?

2)。クリーンな回避策の提案はありますか?

答えて

1

リップルのリップルについて話している場合、リップルはまだベータモードであると思います。私はリムhtml5の実装では、あなたが電話から使用するサービスを指定することができる設定ファイルがあったことを知っています....たぶん、同じ設定ファイル内では、特定のメソッドを指定することができますキーは、 configファイルをチェックして、そのオプションが実際に存在するかどうかを確認してください...

+0

おかげで、使用しています。 – djna

0

私は、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