2016-06-27 3 views
0

Я пытаюсь отправлять местные уведомления каждый день в 7 утра. Я поставил следующий код в контроллере,Отправка местных push-уведомлений с помощью Cordova

код

function send_push_notification(){ 
    cordova.plugins.notification.local.schedule({ 
       id: 10, 
       title: "Report", 
       text: "Pls send a report :-)", 
       firstAt: alarm_time, 
       at: at_8_am, 
       every: "day" 
    }).then(function (success) { 
       return true; 
    }, function (err) { 
       return false 
    }); 
    } 

Но это показывает, ReferenceError: cordova is not defined.. я определил

<script src="cordova.js"></script> на очень первый в index.html файле моего приложения.

Я также попытался привести пример, приведенный в этой ссылке http://ngcordova.com/docs/plugins/localNotification/. Но донно, за которым следует следовать. Оба совершенно разные.

Обновление: работает только

cordova.plugins.notification.local.schedule метод внутри deviceready слушателя событий, но не в контроллере. Я должен заставить его работать с контроллером.

т.е. у меня есть задача отправки локального уведомления о потоке, когда обновление базы данных, сделанное за эту конкретную дату, не нуждается в уведомлении.

+0

Попробуйте установить кордову, как это https://www.npmjs.com/package/cordova –

+0

такая же ошибка появляется. Мой файл app.js содержит строки типа 'cordova.plugins', но контроллер показывает только ошибку. Думаю, я нужно что-то вводить в контроллер. –

+0

вы вводили ngcordova внутри вашего модульного массива. –

ответ

0

Как указывается в моем источнике, следующая команда может быть использована, чтобы иметь раздвоенный и модифицированный нажимной плагин для работы в проекте:

cordova plugin add https://github.com/zxshinxz/PushPlugin.git 

Толчок по умолчанию плагин должен быть удален, и это будет его замена. Если я правильно понял сообщение ниже, это решение исправляет использование локального уведомления также при отключении программы.

Дополнительная информация о том, что связанное сообщение.

Моего источник:

Cordova local notification doesn't work while app is in background

0

Вот такие шаги для запуска локальных уведомлений о Кордове

Шаг: 1 Введите cmd подсказки папки

bower install ngCordova 

включить в основной index.html файл перед cordova

<script src="lib/ngCordova/dist/ng-cordova.js"></script> 
<script src="cordova.js"></script> 

Шаг: 2

Вводят зависимость

angular.module('myApp', ['ngCordova']) 

Установите этот плагин

cordova plugin add https://github.com/katzer/cordova-plugin-local-notifications.git 

Шаг: 3

Вот schedule.js локальный файл уведомлений используется в контроллере

(function(){ 
     'use strict'; 

     angular.module('myApp').controller('Schedule',['$scope','$ionicPlatform','$rootScope','$cordovaLocalNotification','$cordovaSms',Schedule]); 


    function Schedule($scope,$ionicPlatform,$rootScope,$cordovaLocalNotification,$cordovaSms){  
      //************************Setting Notification*********************** 

    $ionicPlatform.ready(function() { 

      var now = new Date().getTime(); 
      var _10SecondsFromNow = new Date(now + 10 * 1000); 

      $cordovaLocalNotification.schedule({ 
      id: 10, 
      title: 'Report', 
      text: 'Text here', 
      at: _10SecondsFromNow 
      }).then(function (result) { 
      // ... 
      }); 
     }; 

     $cordovaLocalNotification.add({ 
      id: 10, 
      title: 'Report', 
      text: 'Pls send a report :-)', 
      firstAt: at_8_am, 
      every: 'day' 
      }).then(function (result) { 
      // ... 
      }); 

      $scope.scheduleSingleNotification = function() { 
      $cordovaLocalNotification.schedule({ 
      id: 1, 
      title: 'Title here', 
      text: 'Text here', 

      }).then(function (result) { 
      // ... 
      }); 
     }; 

}); 


//*******************Notification Ended*********************** 


})(); 
1

Следующий пример кода поможет вам начать в отправке местных уведомлений в устройстве Android и IOS.

index.html

<!DOCTYPE html> 
<html> 
    <head>   
     <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *"> 
     <meta name="format-detection" content="telephone=no"> 
     <meta name="msapplication-tap-highlight" content="no"> 
     <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width"> 
     <link rel="stylesheet" type="text/css" href="css/index.css"> 
     <title>Hello World</title> 
    </head> 
    <body> 
     <h3>Local Notification</h3> 
     <script type="text/javascript" src="js/jquery.js"></script> 
     <script type="text/javascript" src="cordova.js"></script> 
     <script type="text/javascript" src="js/index.js"></script> 
    </body> 
</html> 

index.js

$(document).ready(function() { 
    document.addEventListener("deviceready", onDeviceReady, false); 
}); 

function onDeviceReady() { 
    try { 
     cordova.plugins.notification.local.schedule({ 
      text: "This is the text.", 
      at: new Date(new Date().getTime() + 10000) 
     }); 
    } catch (e) { 
     alert("Fail " + e); 
    } 
} 

Следующий пример кода посылает тестовый уведомление на 10-й секунды после запуска приложения. Код протестирован на устройствах Android и iOS. Вышеприведенный пример кода доступен в github page. Вы можете загрузить пример приложения, установить плагин уведомлений и проверить его.

+0

Нет, problm они дали льготный период .. –

+0

@AvinashRaj Протестируйте то же самое. Надеюсь, это поможет – Gandhi

+0

У меня такой же код в файле app.js, и он работает. Могу ли я включить то же самое в controller.js? Это еще один '$ (document) .ready (function() {' требуется на controller.js для планирования уведомления? –

Смежные вопросы