使用 Plugman 创建 Ionic 插件

Posted

技术标签:

【中文标题】使用 Plugman 创建 Ionic 插件【英文标题】:Ionic Plugin Creation Using Plugman 【发布时间】:2018-11-02 06:35:27 【问题描述】:

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

我遵循的步骤是:

使用 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);

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

如果我从成功中调用函数 doSomething:

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

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

【问题讨论】:

【参考方案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));    
    

【讨论】:

非常感谢,但我仍然无法在 UI 元素中设置文本。即使没有错误。 您需要在另一个问题中显示minimal reproducible example。没有足够的信息来说明为什么文本没有在 UI 中显示【参考方案2】:

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

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

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

【讨论】:

【参考方案3】:

要安装plugman,您的机器上必须安装node。然后你可以在你的环境中的任何地方运行以下命令来全局安装plugman,这样它就可以从任何目录中使用:

$ npm install -g plugman

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

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

【讨论】:

以上是关于使用 Plugman 创建 Ionic 插件的主要内容,如果未能解决你的问题,请参考以下文章

ionic + cordova 插件创建 最详细教程

Ionic app升级插件开发

无法通过 Phonegap 中的 Plugman 安装插件

通过plugman首次安装后无法更新cordova插件

使用 plugman 安装 Cordova 插件失败

cordova 插件开发