如何在离子项目中导入cordova自定义插件?

Posted

技术标签:

【中文标题】如何在离子项目中导入cordova自定义插件?【英文标题】:How import cordova custom plugin in ionic project? 【发布时间】:2017-05-28 15:46:54 【问题描述】:

我以这种模式在我的项目 ionic 3 中添加我的自定义插件:

ionic cordova 插件添加 /path/to/custom/plugin

home.ts

import  Component  from '@angular/core';
import  NavController  from 'ionic-angular';

declare var className: any;

@Component(
  selector: 'page-home',
  templateUrl: 'home.html'
)
export class HomePage 

  constructor(public navCtrl: NavController) 
    className.plugins.ClassName.methodName("======> WORK");
  

plugin.xml

<js-module src="www/ClassName.js" name="ClassName">
<clobbers target="className" />
</js-module>
<platform name="ios">
<config-file target="config.xml" parent="/*">
<feature name="ClassName">
<param name="ios-package" value="ClassName"/>
</feature>
</config-file>
<header-file src="src/ios/ClassName.h" />
<source-file src="src/ios/ClassName.m" />
</platform>

ClassName.js

function ClassName() 

ClassName.prototype.methodName = function(echo, successCallback, errorCallback) 
cordova.exec(successCallback, errorCallback, "ClassName", "methodName", [echo]);
;
module.exports = new ClassName();

类名.m

#import "ClassName.h"

@implementation ClassName

-(void)methodName:(CDVInvokedUrlCommand *)command 
NSString* echo = [command.arguments objectAtIndex:0];
NSLog(@"%@", echo);

@end

类名.h

#import <Cordova/CDVPlugin.h>

@interface ClassName : CDVPlugin
-(void)methodName:(CDVInvokedUrlCommand *)command;
@end

我构建项目并进入 xcode 尝试,但模拟器只显示黑屏并且没有看到 NSLog 的日志... 我该如何解决?导入自定义插件的正确方法是什么?谢谢

【问题讨论】:

还没有构建插件.. 但是你需要在platform.ready().then ()=&gt;)中调用插件 ionicframework.com/docs/api/platform/Platform/#ready 好!现在开始工作,谢谢。 太棒了!将其添加为答案 【参考方案1】:

在调用插件之前,您需要确保平台已加载。

使用platform.ready()

constructor(public navCtrl: NavController,public platform:Platform) 
    this.platform.ready().then(()=>
       className.plugins.ClassName.methodName("======> WORK");
    );
  

【讨论】:

以上是关于如何在离子项目中导入cordova自定义插件?的主要内容,如果未能解决你的问题,请参考以下文章

将 Cordova 离子项目导入 Android 工作室?

如何为离子框架编写自定义/自己的插件

如何在 vuecli3 项目中导入 jquery 插件

Cordova:如何将现有的自定义插件 2.3 添加到项目 3.0 中

如何添加离子/离子2 /离子3 /离子4的本地cordova插件?

如何在离子定制应用程序内打开相机