从离子控制器访问cordova插件
Posted
技术标签:
【中文标题】从离子控制器访问cordova插件【英文标题】:access cordova plugins from ionic controller 【发布时间】:2015-01-03 08:36:36 【问题描述】:我想在离子应用中使用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();
);
)
这与 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 中运行良好,但在单独的控制器文件中不起作用。
【问题讨论】:
显示你的控制器的完整代码 请发布代码,说明您如何通过 ng-click 调用和定义此函数 感谢您的关注我更新我的问题添加更多代码。 【参考方案1】:您应该为此使用 Angular.js 包装器。
查看ngCordova。
【讨论】:
Ladislav 你能举个例子吗? :-)【参考方案2】:在引用$ionicPlatform
之外的插件时,请尝试使用window.cordova
而不是cordova
。
【讨论】:
以上是关于从离子控制器访问cordova插件的主要内容,如果未能解决你的问题,请参考以下文章