2

我正在使用(臭名昭着的)Drew Dahlman's Phonegap Local Notifications in iOS。它似乎工作。PhoneGap iOS LocalNotifications夏令時

我從來沒有寫過一行objective-c並且不希望這可能是因爲我現在有麻煩了,但我認爲插件工作不正常,想修復它如果可能的話。

當我在13:00設置通知時,它會正確啓動。但是,如果夏令時發揮作用,通知將於14:00後延遲一小時。

這是因爲時區沒有被考慮在內嗎?德魯提到時區設置爲+0000不是問題,但這是否是錯誤信息?我應該更新插件來處理時區和夏令時?或者在我自己的代碼中處理夏令時,並且只需在DST處於活動狀態時設置日期-1小時?

我想我必須更新這些行的LocalNotification.m第二,但正如我所說,我不確定該怎麼來更新它。

UILocalNotification *notif = [[UILocalNotification alloc] init]; 
notif.timeZone = [NSTimeZone defaultTimeZone]; 

回答

1

啊,似乎有一個奇怪的問題,當通知設置。

實施例1: 當我這樣做,其中duedate是2013-04-08T21的值:30

var d = new Date(duedate).getTime(); 
d = new Date(d); 

plugins.localNotification.add({ 
date: d, 
... 

該通知被記錄爲被設置爲21:30,像所以:

Notification Set: 2013-04-08 21:30:00 +0000

實施例2:如果我設置duedate這樣的:(其中,添E現在是21:30)

var d = new Date().getTime(); 

該通知被記錄爲被設置爲20:30,像這樣:

Notification Set: 2013-04-08 20:30:00 +0000

然而在第二例子中在21通知火災:30,由於白天節約。(中排序)

解決方案我將不得不增加或減少,現在,當我想通知解僱,而不是專門設置日期之間的時間差。

0

這很有趣。我在創建插件時處理的最大事情之一是JS和OBJ-C解釋時間的奇怪方式。根據文檔,您可以使用systemTimeZone,但該插件所依賴的系統會再次設置該設置。這是用戶設置和手機正在使用的時間。

甚至認爲它默認爲+ 000GMT它仍然在系統中的時間佔此併爲0500或調整你的是永遠區。

UILocalNotification not using the correct timezone

NSTimeZone: what is the difference between localTimeZone and systemTimeZone?

兩者都處理這個問題 - 插件默認使用系統時間。