2016-06-27 188 views
0

我想發送當地通知每天早上7點。我已經把在控制器下面的代碼,發送本地推送通知與科爾多瓦

代碼

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..我在第一個在我的應用程序的index.html文件中定義

<script src="cordova.js"></script>

我也試過這個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

你在模塊數組中注入了ngco​​rdova –

回答

0

正如我在源建議,以下命令可以用來有分叉和修改push插件在項目中的工作:

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

默認的push插件需要被刪除,這將是其替代。如果我正確理解了下面的帖子,該解決方案還可以在程序關閉時修復本地通知使用情況。

關於該鏈接文章的更多信息。

我來源:

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

這裏是在您的控制器

(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

使用schedule.js本地通知文件下面的示例代碼應該讓你在發送在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); 
    } 
} 

以下示例代碼啓動應用後發出對第十第二測試通知。該代碼在Android和iOS設備上進行測試。以上示例代碼可在github page中找到。您可以下載示例應用程序,安裝通知插件並對其進行測試。

+0

不,他們給予寬限期的問題。 –

+0

@AvinashRaj做相同的測試。希望它有幫助 – Gandhi

+0

我在app.js文件中有相同的代碼,它的工作原理..我可以包含相同的controller.js?那是另一個'$(document).ready(function(){'controller.js需要安排通知嗎? –

相關問題