我是离子的新手和科尔多瓦这个振动插件不起作用。您能指出错误吗?
这是index.html:
<body ng-app="starter">
<ion-pane>
<ion-header-bar class="bar-stable">
<h1 class="title">Ionic Blank Starter</h1>
</ion-header-bar>
<ion-content ng-controller="myCtrl">
<button ng-click="toggle()">Toggle</button>
</ion-content>
</ion-pane>
</body>
这是JS文件夹中的app.js:
var ionicApp = angular.module('starter', ['ionic', 'ngCordova'])
ionicApp.controller("myCtrl", function($scope, $cordovaVibration)) {
$scope.toggle = function() {
$ionicPlatform.ready(function() {
$cordovaVibration.vibrate(100).then(function() {
console.log("Phone vibrating");
})
});
}
}
.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
// 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) {
StatusBar.styleDefault();
}
});
})
我添加了ng-cordova
振动插件。
我遇到了同样的问题,我的解决方案添加了Cordova插件,看来您会考虑到这一点:这是我的项目区别:
我使用了此版本的Ready
$scope.toggle = function() {
document.addEventListener( "deviceready", function() {
$cordovaVibration.vibrate( 2000 ); }, false );
};
我的离子应用定义我将ngcordova联播首先放置。尽管这可能不是问题
var ionicApp = angular.module('starter', ['ngCordova','ionic' ])
我解决问题的方法是正确安装插件:尝试:
cordova plugin add cordova-plugin-vibration
而不是说:
的官方网站cordova plugin add org.apache.cordova.vibration
我将权限添加到/platforms/android/androidmanifest.xm。尽管这似乎不是必需的,因为我相信离子构建或离子运行发现您正在使用振动,并为自己添加
<uses-permission android:name="android.permission.VIBRATE" />
在设备上进行测试时,请确保设备未固定。许多(大多数)设备将"静音"振动以及音频。如果您要在浏览器中调试,则应看到"为XMS振动"。在控制台中," x"是您提供给振动函数的毫秒数。这告诉您插件正在工作(显然您无法振动计算机)。但是,同样,在设备上进行测试时,请确保它不在静音上。