2017-05-28 4 views
1

ich meine benutzerdefinierten Plug-in meinem Projekt ionischen 3 in diesem Modus hinzufügen:Wie importieren Cordova benutzerdefinierte Plugin in ionischen Projekt?

ionische cordova Plugin hinzufügen/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(); 

ClassName.m

#import "ClassName.h" 

@implementation ClassName 

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

ClassName.h

#import <Cordova/CDVPlugin.h> 

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

I Projekt bauen und gehen in Xcode zu versuchen, aber zeigen Simulator nur schwarzer Bildschirm und kein Protokoll von NSLog ... Wie kann ich auflösen ? Was ist die korrekte Methode, um benutzerdefinierte Plugins zu importieren? Danke

+0

havent ein Plugin gebaut .. aber Sie brauchen Plugins rufen innerhalb 'platform.ready(). Dann() => {})' –

+0

https://ionicframework.com/docs/api/platform/Plattform/# bereit –

+0

Gut! Jetzt arbeite, Danke. – Riidio

Antwort

0

Sie müssen sicherstellen, dass die Plattform geladen ist, bevor Sie Ihr Plugin aufrufen.

Verwenden platform.ready()

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