gpt4 book ai didi

没有回调的 Cordova 自定义插件结构?

转载 作者:行者123 更新时间:2023-12-04 18:21:29 25 4
gpt4 key购买 nike

我正在创建我的第一个 Cordova 插件以使用开源 SDK。我在没有回调的情况下运行它时遇到了问题,因为库没有任何东西(想想分析之类的东西)。还有很多不同的格式,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()
}
})

})();

setup 函数有 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插件格式,我都试过了,都没有。如果有帮助,我正在使用 Cordova 1.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调用与插件的实际功能无关...

    最佳答案

    好的,对于其他想知道格式化的人来说……这是我得到的解决方案:

    这适用于 1.6.1 => 1.9x(但不要使用 1.9,因为它有一个严重的 stack overflow 错误!)

    var MyPlugin() = function() {};

    MyPlugin.prototype.setup = function(types) {
    return Cordova.exec("MyPlugin.setup", types);
    };

    cordova.addConstructor(function() {
    if (!window.Cordova) {
    window.Cordova = cordova;
    };

    if(!window.plugins) window.plugins = {};

    window.plugins.myPlugin = new MyPlugin();
    });

    在 Cordova 2.0 中 addConstructor已被删除,不需要检查 Cordova..
    var MyPlugin() = function() {};

    MyPlugin.prototype.setup = function(types) {
    return Cordova.exec("MyPlugin.setup", types);
    };

    //Keep at bottom but remove the addConstructor for Cordova 2+
    if(!window.plugins) window.plugins = {};
    window.plugins.myPlugin = new MyPlugin();

    关于没有回调的 Cordova 自定义插件结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10587398/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com