2016-04-14 5 views
1

私はイオンフレームを使用しており、cordova email composer pluginも組み込みたいと思います。コルドバ電子メール作者 'isAvailable'エラー

cordova plugin add https://github.com/katzer/cordova-plugin-email-composer.git

と(私のように構成バージョン)指定されたデフォルトの例を使用::私はCLIをインストールした

Javascriptを

app.controller('mailCtrl', ['$scope', '$cordovaEmailComposer' , function($scope, $cordovaEmailComposer) { 

$scope.mailclient = function($cordovaEmailComposer) 
{ 

$cordovaEmailComposer.isAvailable().then(function() { 
    console.log("email available"); 
}, function() { 
    console.log("email not available"); 
}); 

    var email = { 
    to: '[email protected]', 
    attachments: [ 
     '...\img\nslogo.png', 
     '...\img\nslogo.png', 
     '...\img\nslogo.png' 
    ], 
    subject: 'Truck Checked In', 
    body: 'Hi', 
    isHtml: true 
    }; 

$cordovaEmailComposer.open(email).then(null, function() { 
    // user cancelled email 
}); 
} 
}]); 

HTML

<ion-view view-title="Mail">   
<ion-content ng-controller="mailCtrl"> 

    <button ng-click="mailclient(email)" class="button button-icon icon ion-email"> 
     Send mail 
    </button> 

</ion-content> 
</ion-view> 

ブラウザでは動作しないことは知っていますが、私はIonic Viewアプリケーションを使用してテストしましたが、何もしません。ブラウザのコンソール上

私はこのエラーが表示されます。

TypeError: Cannot read property 'isAvailable' of undefined.

が、これは通常の問題ですか、私は、コーディング間違っを使用していますか?

答えて

-1

$scope.mailclientにないコントローラ機能のパラメータとして$cordovaEmailComposerを含める必要があります。そうすればうまくいくはずです。

app.controller('mailCtrl', function($scope, $cordovaEmailComposer) { 
... 
} 

プラグインが正しくインストールされていません。呼びましたか?

cordova plugin add https://github.com/katzer/cordova-plugin-email-composer.git 
+0

を私が最初にやったが、私はこのエラーを取得します。 'ionic.bundle.js:25642 Error:[$ injector:unpr]不明なプロバイダ:$ cordovaEmailComposerProvider < - $ cordovaEmailComposer < - mailCtrl' –

+0

私はそれを試しました。 'codeova plugin add https:// github.com/katzer/cordova-plugin-email-composer.git'でプラグインをインストールした後、私はプロバイダエラーを取得しません。 –

+0

私はまだ動作しませんでした –

0

依存性注入配列には、コントローラ内の閉じ角括弧がありません。コントローラーの端からクロージングブラケットを取り外します。このように:

app.controller('mailCtrl', ['$scope', '$cordovaEmailComposer' ] , 
function($scope, $cordovaEmailComposer) { 
}); 

また、プラグインコールはコードワーカーのイベントに含まれます。プラグインコールを行う前にデバイスがロードされていることを確認します。

document.addEventListener("deviceready", function() { 
    // plugin call 
}, false); 

このngCordova issues読む:

関連する問題