2014-11-06 6 views
6

Ich möchte Cordova Email Plugin in ionischen Anwendung verwenden.Zugriff cordova Plugins von ionischen Controller

Ich kann Plugin in $ ionicPlatform Funktion zugreifen, aber wenn ich meinen Code auf meinen Controller in einer Funktion für den Griff ng-Klick bewegt, ist es nicht funktionieren.

Know meine Frage ist, wie Cordova Plugin-Objekte von Controller zugreifen ??

Dies ist mein Code, den ich in app.js verwenden und arbeitete:

.run(function($ionicPlatform) { 
    $ionicPlatform.ready(function() { 

cordova.plugins.email.isAvailable(
    function (isAvailable) { 
     alert('Service is available'); 
    } 
); 
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard 
// for form inputs) 
if(window.cordova && window.cordova.plugins.Keyboard) { 
    cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
} 
if(window.StatusBar) { 
    // org.apache.cordova.statusbar required 
    StatusBar.styleDefault(); 
} 
    }); 
}) 

Das gleiche Code in controller.js ist, die nicht funktioniert (ich mein Controller in meiner Route):

.controller('ApplicationController', function($scope) { 
    $scope.sendMail = function() { 
    cordova.plugins.email.isAvailable(
     function (isAvailable) { 
      alert('Service is not available'); 
     } 
    ); 
    } 
}) 

und das ist mein Klick Aufruf:

<a ng-click="sendMail()"> 
    <i class="icon ion-android-forums"></i> 
send mail 
    </a> 

Dieser Code ist gut funktioniert in $ ionicPlatform aber d Arbeitet nicht in separater Controller-Datei.

+0

Zeigen Sie den vollständigen Code Ihres Controllers – denisazevedo

+0

Bitte Code, wie Sie anrufen und definieren diese Funktion durch ng-Klick – ShinyJos

+0

Vielen Dank für Ihre Aufmerksamkeit, die ich meine Frage aktualisieren Code hinzufügen. – b24

Antwort

0

Sie sollten hierfür einen Angular.js-Wrapper verwenden.

Auschecken ngCordova.

+0

Ladislav kannst du bitte ein Beispiel geben? :-) – Sopo

-1

Versuchen Sie, window.cordova anstelle von cordova zu verwenden, wenn Sie auf das Plugin außerhalb von $ionicPlatform verweisen.