0

我有一個Android移動通知問題。 我正在使用Angularjs和離子框架。angularjs和離子 - Android本地通知

我想與本地通知工作,我使用這個插件。 https://github.com/katzer/cordova-plugin-local-notifications

我的代碼

var app = angular.module('Forex', ['ionic', 'ngCordova']) 
app.controller("MainCtrl", function($scope,$http,$interval, $ionicPlatform, $cordovaLocalNotification) { 
scope.notification = function() { 
$cordova.plugins.notification.local.schedule({ 
     id: 1, 
     title: 'Title here', 
     text: 'Text here' 
     }); 
    }; 

但如果我按下按鈕來調用範圍。

<ion-toggle ng-click="notification()">Enable Notifier</ion-toggle> 

我得到這個錯誤。 Cordobva沒有定義。

ReferenceError: $cordova is not defined 
at Scope.$scope.notification (http://192.168.1.175:8100/js/app.js:48:1) 
at fn (eval at <anonymous> (http://192.168.1.175:8100/lib/ionic/js/ionic.bundle.js:21972:15), <anonymous>:4:227) 
at http://192.168.1.175:8100/lib/ionic/js/ionic.bundle.js:57514:9 
at Scope.$eval (http://192.168.1.175:8100/lib/ionic/js/ionic.bundle.js:24673:28) 
at Scope.$apply (http://192.168.1.175:8100/lib/ionic/js/ionic.bundle.js:24772:23) 
at HTMLDivElement.<anonymous> (http://192.168.1.175:8100/lib/ionic/js/ionic.bundle.js:57513:13) 
at HTMLDivElement.eventHandler (http://192.168.1.175:8100/lib/ionic/js/ionic.bundle.js:12098:21) 
at triggerMouseEvent (http://192.168.1.175:8100/lib/ionic/js/ionic.bundle.js:2865:7) 
at tapClick (http://192.168.1.175:8100/lib/ionic/js/ionic.bundle.js:2854:3) 
at HTMLDocument.tapMouseUp (http://192.168.1.175:8100/lib/ionic/js/ionic.bundle.js:2927:5) 

請說出來,如果我錯過了一些信息給。多年後,這是我在stackoverflow上的第一個問題。

我也試過

$scope.notification = function() { 
    $cordovaLocalNotification.schedule({ 
        id: 1, 
        title: 'Dynamic Notification', 
        text: 'txt' 
       }).then(function (result) { 
        console.log(result); 
       }); 
      } 


}); 

回答

0

在你的例子中明顯的是,$cordova是不確定的。

$cordova最有可能需要被包括在控制器參數的依賴。

嘗試:

app.controller("MainCtrl", 
    function($scope,$http,$interval, $ionicPlatform, $cordovaLocalNotification, $cordova) { 

編輯:

documentation尋找這個插件,它看起來像科爾多瓦不作爲角度依賴性的傳遞,而是之後是一個全局對象:

var app = angular.module('Forex', ['ionic', 'ngCordova']) 

app.controller("MainCtrl", function($scope, $http, $interval, $ionicPlatform, $cordovaLocalNotification) { 
    scope.notification = function() { 
     cordova.plugins.notification.local.schedule({ 
      id: 1, 
      title: 'Title here', 
      text: 'Text here' 
     }); 
    }; 
}); 

編輯2:

this example我們看到使用$cordovaLocalNotification,包裹在一個$ionicPlatform準備通話時,您的代碼看起來像:

var app = angular.module('Forex', ['ionic', 'ngCordova']) 

app.controller("MainCtrl", function($scope, $http, $interval, $ionicPlatform, $cordovaLocalNotification) { 
    $ionicPlatform.ready(function() { 

     $scope.notifText = 'Hello World!'; 

     $scope.triggerNotification = function() { 

      $cordovaLocalNotification.schedule({ 
       id: 1, 
       title: 'Dynamic Notification', 
       text: $scope.notifText 
      }).then(function (result) { 
       console.log(result); 
      }); 
     } 
    }); 
}); 
+0

謝謝你的快速反應,但我得到一個錯誤。錯誤:[$ injector:unpr]未知的提供者:$ cordovaProvider < - $ cordova < - MainCtrl – Romano

+0

@ user2804809對,也許cordova被調用時沒有'$'? – Filype

+0

cordova.plugins.notification.local.schedule而不是$ cordova.plugins.notification.local.schedule – Filype