2014-11-06 73 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