2

我是 Ionic 和 Cordova 的新手。我需要使用 Cordova 为离子创建一个插件并将其集成到示例离子应用程序中。

我遵循的步骤是:

使用 plugman 创建了一个简单的 ionic 插件

plugman create --name SayHello --plugin_id cordova-plugin-sayhello -plugin_version 0.0.1

为上述插件添加了 android 平台。

cd SayHello/ && plugman platform add --platform_name android

现在我想将此插件集成到我的 ionic 应用程序中。

ionic cordova plugin add ../SayHello

在 Home.ts 中的 ionic 应用程序中,我编写了这段代码。

declare var cordova: any;
var success = function(result) {
  console.log(result);
}
var failure = function(err) {
  console.log(err);
}
cordova.plugins.HelloWorld.coolMethod("SayHelloTest", success, failure);

问题是我无法在离子应用程序中调用成功或失败的任何函数。

就像我从成功中调用函数 doSomething 一样:

var success = function(result) {
   doSomething(result);
}

它显示错误 doSomething 函数未找到。它只能在控制台中打印。

4

3 回答 3

1

您需要将成功创建为类函数,并将其作为绑定函数发送或调用内部箭头。

declare var cordova:any;

class HomePage{
    //constructor etc...
    doSomething(res:any){
    }

    success(result){
        this.doSomething(result);
    }
    failure(err){}
    //..
    //call
    callCordovaFunction(){
        cordova.plugins.HelloWorld.coolMethod("SayHelloTest", this.success.bind(this), this.failure.bind(this));
    //or
        cordova.plugins.HelloWorld.coolMethod("SayHelloTest", (res)=>this.success(res),(err)=>this.failure(err));    
    }
}
于 2018-11-02T13:39:29.857 回答
0

要安装 plugman,您必须在您的机器上安装节点。然后,您可以从环境中的任何位置运行以下命令以全局安装 plugman,以便从任何目录都可以使用它:

$ npm install -g plugman

安装 Plugman 并创建 Cordova 项目后,您可以开始向平台添加插件:

$ plugman create --name SayHello --plugin_id cordova-plugin-sayhello -plugin_version 0.0.1
于 2021-07-02T04:12:24.600 回答
0

创建插件后,理论上也可以使用 plugman 导入它,以便执行您想要执行的操作。我读过的命令是: plugman install --platform android --project projectPlatformPath --plugin pluginPath

无论如何,当我尝试时,这对我不起作用,也让你的插件使用起来不舒服。为您的插件创建一个离子包装器gulp并将其复制到您项目的node_modules/@ionic-native. 这样你就可以像你刚刚添加的其他插件一样注入它ionic cordova plugin add cordova-plugin-name-here。这也是 Ionic 推荐的方式。

详细的说明写在这里会很长。只需访问本教程并按照分步说明进行操作即可。

于 2019-12-01T16:37:40.750 回答