从离子控制器访问cordova插件

access cordova plugins from ionic controller

本文关键字:cordova 插件 访问 控制器      更新时间:2023-09-26

我想在ionic应用程序中使用Cordova电子邮件插件。

我可以访问$ionicPlatform函数中的插件,但当我将代码移动到用于处理点击的函数中的控制器时,它不起作用。

知道我的问题是如何从控制器访问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();
}
  });
})

这是controller.js中没有工作的相同代码(我在路由中设置了控制器):

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

这是我的点击电话:

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

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

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

看看ngCordova。

在引用$ionicPlatform之外的插件时,请尝试使用window.cordova而不是cordova