【发布时间】:2015-07-08 16:36:27
【问题描述】:
感谢 Ionic,我的应用看起来不错。所有的核心信息都在那里,我只是添加了一些装饰——电子邮件、共享、媒体(其中一个功能是节拍器)等等。
我无法使用任何插件。
我在以前的 Ionic 应用程序上取得了成功,但插件都是从内部调用的
.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
}
}
确实,状态栏插件似乎工作正常,它是从那里调用的。
我正在使用带有内置选项卡的侧边菜单启动器。
我想我的问题是我有三个控制器文件。 main_ctrls.js - 用于主应用程序 menu_ctrls.js - 用于菜单页面,如反馈和电子邮件、分析 extras_ctrls.js - 用于带有节拍器等的“额外”部分。
我已将 'ngCordova' 作为每个模块的依赖项,并使用 ready 函数从控制器内调用插件。这是电子邮件控制器。
angular.module('menu.controllers', ['ngCordova'])
.controller('FeedCtrl', function($ionicPlatform, $scope, $cordovaEmailComposer) {
$ionicPlatform.ready(function() {
$cordovaEmailComposer.isAvailable().then(function() {
// is available
alert('Email is available');
}, function () {
// not available
alert('Email is NOT available');
});
var email = {
to: 'max@mustermann.de',
cc: 'erika@mustermann.de',
bcc: ['john@doe.com', 'jane@doe.com'],
attachments: [
'file://img/logo.png',
'res://icon.png',
'base64:icon.png//iVBORw0KGgoAAAANSUhEUg...',
'file://README.pdf'
],
subject: 'Cordova Icons',
body: 'How are you? Nice greetings from Leipzig',
isHtml: true
};
$cordovaEmailComposer.open(email).then(null, function () {
alert('Email discarded.');
});
})
});
我正在使用 Chrome 检查在 Android(带有 Android 5.1 的 Nexus 4)上对其进行测试,但我收到一条错误消息,提示“无法读取未定义的属性 'isAvailable'”。不用说,警报不会弹出。
以这种方式从控制器内调用的所有插件都会发生这种情况。
我做错了什么?
【问题讨论】:
-
这可能会有所帮助。 raymondcamden.com/2014/08/16/…
-
我可以尝试一下,但这似乎没有必要,因为插件不需要在应用程序启动后立即准备好。
标签: angularjs cordova plugins ionic-framework ngcordova