离子ng-cordova振动插件无法正常工作



我是离子的新手和科尔多瓦这个振动插件不起作用。您能指出错误吗?

这是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"是您提供给振动函数的毫秒数。这告诉您插件正在工作(显然您无法振动计算机)。但是,同样,在设备上进行测试时,请确保它不在静音上。

最新更新