2014-11-06 61 views
6

我想在离子应用中使用Cordova Email Plugin访问来自离子控制器的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但d不要在单独的控制器文件中工作。

+0

显示您的控制器的完整代码 – denisazevedo 2014-11-06 18:21:02

+0

请通过ng-click – ShinyJos 2014-11-07 06:04:01

+0

发布代码,了解您如何致电并定义此功能感谢您的关注我更新我的问题添加更多代码。 – b24 2014-11-07 07:24:10

回答

0

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

结账ngCordova

+0

拉迪斯拉夫你能举个例子吗? :-) – Sopo 2017-07-12 07:04:57

-1

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