如何使用cordova-plugin-local-notification在离子的特定时间每天获取本地通知
Posted
技术标签:
【中文标题】如何使用cordova-plugin-local-notification在离子的特定时间每天获取本地通知【英文标题】:How to get local notification everyday at specific time in ionic using cordova-plugin-local-notification 【发布时间】:2018-05-10 16:40:51 【问题描述】:我在 2 天前发布了这个问题,但我没有收到任何答案。 我想每天上午 10:00 收到本地通知。 我的代码是: 而且有时我会收到通知,然后无法通过在通知托盘上交换来删除它。
请检查我的代码并尽快给我答复
import Component from '@angular/core';
import Platform, NavController, ToastController, AlertController from 'ionic-angular';
import StatusBar from '@ionic-native/status-bar';
import SplashScreen from '@ionic-native/splash-screen';
import HomePage from '../pages/home/home';
import MainpagePage from "../pages/mainpage/mainpage";
import LoginPage from "../pages/login/login";
import SplashPage from "../pages/splash/splash";
import Observable from 'rxjs/Rx';
import Geolocation from '@ionic-native/geolocation';
import SQLite, SQLiteObject from '@ionic-native/sqlite';
import DbHandlerProvider from '../providers/db-handler/db-handler';
import LocationTracker from '../providers/location-tracker/location-tracker';
import BackgroundMode from '@ionic-native/background-mode';
import HttpService from '../pages/services/httpService';
import LocalNotifications from '@ionic-native/local-notifications';
import moment from 'moment';
import Diagnostic from '@ionic-native/diagnostic';
declare let cordova: any;
import LocationAccuracy from '@ionic-native/location-accuracy';
import Subscription from 'rxjs';
@Component(
templateUrl: 'app.html'
)
export class MyApp
rootPage:any;
db: SQLiteObject;
time: any;
arrTime: any = [];
arrNotification: any = [];
onResumeSubscription: Subscription;
constructor(public platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen,private geolocation: Geolocation,
private sqlite: SQLite, private dbHandlerProvider: DbHandlerProvider,
public locationTracker: LocationTracker,private backgroundMode: BackgroundMode,
public httpService: HttpService, public toastCtrl: ToastController,private localNotifications: LocalNotifications,
private diagnostic: Diagnostic, private alertCtrl: AlertController, private locationAccuracy: LocationAccuracy)
this.dbHandlerProvider.createDatabase();
this.backgroundMode.enable();
if(localStorage.getItem('UserId') == null)
this.rootPage = LoginPage;
else
this.rootPage = MainpagePage;
platform.ready().then(() =>
setTimeout(()=>
this.pushNotification();
,1000);
statusBar.styleDefault();
);
pushNotification()
var pushTime = moment().add(0, 'days').hours(10).minutes(0).seconds(0);
let data =
text: 'Aaron Harper Notification ',
every: 'day',
firstAt: pushTime.toDate()
cordova.plugins.notification.local.schedule(data);
提前谢谢你...
【问题讨论】:
您遇到什么错误?怎么了?你还尝试过什么?你能显示一个有效的硬编码时间/日期吗?为了获得最佳结果并获得答案,您应该关注***.com/help/mcve 错误不会每天收到通知...... 我在我的问题中显示了我的代码,如果还有什么问题请告诉我 【参考方案1】:试试:
var pushTime = moment().add(0, 'days').hours(10).minutes(0).seconds(0);
cordova.plugins.notification.local.schedule(
text: 'Tracking Enabled ',
every: 'day',
firstAt: pushTime.toDate()
);
它应该在今天上午 10 点安排第一个通知,然后所有下一个通知将与第一个通知间隔 1 天,即每天上午 10 点。
【讨论】:
你设定未来的时间了吗?您可以尝试提前几分钟设置时间并every: 'minute'
并检查。
我尝试了上面的代码,我发现....我现在运行代码并将日期从电话设置更改为明天上午 10:00,然后通知没有到来,但我将日期更改为 5 月 12 日5 月 13 日通知来了
为什么没有在 5 月 12 日上午 10:00 收到通知
我还发现有时候通知永远不会来
发布你的代码作为更新来回答,然后我打电话看一下。以上是关于如何使用cordova-plugin-local-notification在离子的特定时间每天获取本地通知的主要内容,如果未能解决你的问题,请参考以下文章
如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]