オープンソースSDKで動作する最初のCordovaプラグインを作成しています。ライブラリにコールバックがないため、コールバックなしで実行する際に問題が発生します(アナリティクスのようなものを考えてください)。さまざまな形式もあり、wikiは2年前のものであるため、適切な方法がわかりません。
プラグインの設定のいくつかの異なるバリエーションを試しましたが、どれもうまく機能しません。
私の.js:
;(function(){
if (Cordova.hasResource("myPlugin")) return
Cordova.addResource("myPlugin")
function MyPlugin() {
}
MyPlugin.prototype.setup = function(types) {
return Cordova.exec("MyPlugin.setup", types);
};
Cordova.addConstructor(function() {
if(!window.plugins)
{
window.plugins = {};
}
if (!window.plugins.myPlugin) {
window.plugins.myPlugin = new MyPlugin()
}
})
})();
セットアップ関数は、すべて文字列の4つの引数を取ります。MyPlugin.jsをindex.htmlファイルに含めてから、onDeviceReady()で次のように呼び出します。
window.plugins.myPlugin.setup('xxx-x-xxx','xxxx','xxxx','xxxx');
実行しようとすると、エラーが発生します[INFO] Error in success callback: NetworkStatus0 = TypeError: 'undefined' is not an object
。
私はグーグルなどを試しましたが、いくつかの異なるPhoneGapプラグイン形式を見つけましたが、それらすべてを試しましたが、どれも機能しません。それが助けになるなら、私はCordova1.6.1を使用しています。
これが私が模倣しようとしたさまざまな構造のリストです:
- https://github.com/chbrody/Cordova-ios-UniqueDeviceId/blob/master/UniqueDeviceId.js
- https://github.com/purplecabbage/phonegap-plugins/blob/master/iPhone/BarcodeScanner/barcodescanner.js
- https://github.com/phonegap/phonegap-plugins/blob/master/iOS/BarcodeScanner/barcodescanner.js
- https://github.com/purplecabbage/phonegap-plugins/blob/master/iPhone/ChildBrowser/ChildBrowser.js
それらはすべて同じエラーを生成するので、問題が何であるかはわかりません。
編集:私も言及する必要があります、私のObj-Cコードは呼び出されません。プラグインの実際の機能とは関係のないJS呼び出しに何か問題があります...