Ionic 4:如何导入自定义插件

时间:2019-03-20 08:54:40

标签: objective-c plugins ionic4

我用Plugman命令创建一个离子插件。 我的插件是:SayHello

enter image description here

这是SayHello.js的内容:

var exec = require('cordova/exec');

exports.coolMethod = function (arg0, success, error) {
    exec(success, error, 'SayHello', 'coolMethod', [arg0]);
};

这是SayHello.m的内容:

/********* SayHello.m Cordova Plugin Implementation *******/

#import <Cordova/CDV.h>

@interface SayHello : CDVPlugin {
  // Member variables go here.
}

- (void)coolMethod:(CDVInvokedUrlCommand*)command;
@end

@implementation SayHello

- (void)coolMethod:(CDVInvokedUrlCommand*)command
{
    NSLog(@"===============> Hello Seikida !");

    CDVPluginResult* pluginResult = nil;
    NSString* echo = [command.arguments objectAtIndex:0];

    if (echo != nil && [echo length] > 0) {
        pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:echo];
    } else {
        pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR];
    }

    [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
}

@end

我在ionic项目(ionic 4)上安装了自定义插件:

enter image description here

一切都很好(=在我的设备上运行项目时我没有错误),但是我不知道如何调用coolMethod。

要创建我的插件,请遵循以下主题:Ionic Plugin Creation Using Plugman

但是他们使用了旧的离子版本(例如:离子4上没有Home.ts文件)。

您能帮助我了解如何在home.page.ts上使用我的插件吗? 如何导入我的插件? (你有例子吗?)

谢谢

1 个答案:

答案 0 :(得分:0)

您需要做的是为插件创建一个Ionic包装器,将其复制到Ionic项目中,导入并注册提供程序。之后,您将能够注入您的插件并使用它。 总结起来,您必须这样做:

  1. 导入离子本机回购协议(https://github.com/ionic-team/ionic-native
  2. 使用ionic-native目录中的工具gulp创建一个Ionic包装器并进行设置
  3. 编译包装程序并将结果复制到项目node_modules/@ionic-native下的
  4. app.module.ts中注册提供程序(安装其他现有插件之前,您可能已经完成了此操作)
  5. 将插件导入并注入my-page.page.ts中(也可能之前完成)
  6. 享受

插件的设置特别棘手,在src/@ionic-native/plugins/my-plugin/index.ts中的命名要非常小心。如果操作不正确,则会在运行时收到“未安装插件”错误。在这种情况下,请纠正重复的步骤3。

您可能需要更多详细信息。遵循this tutorial 中的分步指南,我写道您不会迷路。考虑到卡住的地方,您可能可以跳到第5步,但是我建议从头开始阅读以使自己适应环境。

希望这会有所帮助!