2017-02-03 4 views
2

私はすでにcordovaプラグインを作成しており、すでにIonic 1で使用されています。それから私はIonic 2でそれを使用しようとしましたが、プラグインの呼び出し方法はわかりません。私はhereの手順に従います。そして、これは私がやったことです:イオン2:カスタムビルドの使い方Cordova Plugin

plugin.xmlの

<name>myPlugin</name> 
<js-module src="www/myPlugin.js" name="myPlugin"> 
    <clobbers target="myPlugin" /> 
</js-module> 

myPlugin.js

module.exports = { 
    myFunction: function (success, failure) {   
    cordova.exec(success, failure, "myPlugin", "myFunction", []); 
    } 
}; 

ハローionic.ts

import { Component } from '@angular/core'; 
declare var cordova: any; 

@Component({ 
    selector: 'page-hello-ionic', 
    templateUrl: 'hello-ionic.html' 
}) 
export class HelloIonicPage { 
    constructor() { 

    } 

    click() { 

    if (typeof cordova !== 'undefined') { 
     cordova.plugins.myPlugin.myFunction(); 
    } 
    } 
} 

hello-ionic.tsにエラー"Undefined myFunction"が返されます。 ご協力いただきありがとうございます。私は複数のカスタムプラグインを作成するには、このチュートリアルを踏襲しており、それらはIonic2で正常に動作している

https://taco.visualstudio.com/en-us/docs/createplugintutorial/

+2

haventはカスタムプラグインを作成しましたが、プラグインコードを 'Platform.ready()'にカプセル化する必要があります –

+0

@suraj既に 'Platform.ready()'が追加されていますが、エラー:未定義のプロパティ 'myFunction'を読み取ることはできません。 –

+0

宣言を使用しようとしましたか?var myPlugin:any; codeova.plugins.myPlugin.myFunction()の代わりにmyPlugin.myFunction()を使用します。 – AishApp

答えて

4

ここに私がしたことがあります。

ハローionic.ts

import { Component } from '@angular/core'; 
declare var myPlugin: any; 

@Component({ 
    selector: 'page-hello-ionic', 
    templateUrl: 'hello-ionic.html' 
}) 
export class HelloIonicPage { 
    constructor() { 

    } 

    click() { 
    myPlugin.myFuntion(
     (data) => { 
     console.log(data); 
     }, 

     (err) => { 
     console.log(err); 
     }); 
    } 
} 

declare var myPlugin: any;、私は<clobbers target="myPlugin" />から取得myPlugin名。

注:デバイスでのみプロジェクトを実行する必要があります。

2

次のチュートリアルでは、カスタムコルドバのプラグインを作成する方法を学ぶための優れたリソースです。

ionic plugin add "folder path of your custom plugin"

更新:

にあなたが持っている

は、次のコマンドを使用して、イオン2プロジェクトにカスタムプラグインを追加します。チュートリアルではと言及していないことを指摘する

もう一つ

plugin.xmlファイルでclobbersタグに "myPlugin"をtargetと設定しています。

window.myPlugin.myFunction(); 

を以下のように

ですから、あなたの関数を呼び出す必要があります。ヒント:あなたはあなた(または他の誰か)が作成したカスタムプラグインを使用するたびに、Chromeデベロッパーツールを使用してアプリケーションを検査します。開発者ツールのコンソールタブでは、windowなどの利用可能なオブジェクトを調べることができ、プラグインのメソッドを呼び出す正しい方法を見つけることができます。

+0

ありがとう、私はすでにプラグインを作成するためのチュートリアルに従っています。私はチュートリアルのようにしましたが、同じエラー 'タイプエラー:未定義のgetNextAppointment'プロパティを読み取れません。 –

+0

こんにちは@sitiaishahismail、あなたの関数を呼び出す方法に問題があるかもしれません。更新された回答を確認してください。 –

関連する問題