从离子控制器访问cordova插件

b24*_*b24 6 javascript angularjs cordova ionic-framework

我想在离子应用程序中使用Cordova Email Plugin.

我可以访问$ ionicPlatform函数中的插件但是当我将我的代码移动到我的控制器中的一个函数来处理ng-click它是行不通的.

知道我的问题是如何从控制器访问cordova插件对象?

这是我在app.js中使用的代码并且有效:

.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();
}
  });
})
Run Code Online (Sandbox Code Playgroud)

这与controller.js中的代码相同,但是没有用(我在我的路线中设置了控制器):

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

这是我的点击通话:

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

这是代码在$ ionicPlatform中运行良好,但在单独的控制器文件中不起作用.

Lad*_*v M -1

您应该为此使用 Angular.js 包装器。

查看ngCordova