2012-10-25 58 views
0

此問題是我的earlier question的擴展/替代方案(未收到任何回覆)。我沒有試圖實現推送通知,我可以定期輪詢服務器。但是這個輪詢需要持續超過分配給後臺任務的10分鐘。iOS中的計時任務

是否有像iOS中的定時任務(想想cron-jobs/daemons)?

我能想到的另一種扭曲方式是,如果我將twitter框架集成到我的應用程序中並讓我的服務器發送直接消息,它會喚醒我的應用程序嗎?我知道這聽起來很蹩腳的,如如何將iOS的知道哪些應用,以提供通知,如果通知RECD ...

感謝,並期待一些答覆:)

+0

「有沒有類似iOS中的定時任務(想想cron-jobs/daemons)?」 - 第 – sosborn

回答

0

你爲什麼反對使用推送通知無論你想要做什麼? Urban Airship似乎允許免費發送每月1000000推送消息的基本計劃。

無論如何,我想不出任何其他方式。

+0

Hello EarlyRiser,對不起,我引用了問題中的錯誤線索。我正在爲客戶開發這個功能,用戶可以在設置中使用它,通過WiFi訪問公司的內部服務器,但不能訪問互聯網(安全和基礎設施限制)。因此,APNS不會爲我工作。抱歉的混淆。企業分銷也不是一種選擇,因爲它也需要交付給客戶的客戶。企業帳戶的法律條款不允許這樣做。 – ameyazing

0

什麼你想實現很可能是一個「不」,但我沒有做一些漂亮一些的hackish東西回來的話,所以這可能會或可能不會爲你工作(無擔保):

當應用程序接收到通知後,它會觸發應用程序委託的applicationDidLoad()方法,並將通知對象存儲在「launchOptions」參數中。

在這種方法中,您可以執行一個操作來輪詢您的服務器。

所以我在想的是,設置一個本地通知在你想要的日期觸發。本地通知就像推送通知,即使你的應用程序被終止,它們也可以執行(在後臺進程中死亡)

然後在你的應用程序委託的didFinishLaunchingOptions()中,你可以檢查它是否匹配通知,然後執行你想要的服務器輪詢邏輯,否則忽略。

注意:如果您的服務器輪詢邏輯位於另一個視圖控制器中,則意識到這些視圖控制器實際上可能不會啓動,直到您實際單擊該選項卡才能查看它們。現在,因爲您的應用已終止並且未運行,您顯然無法點按選項卡。

第二黑客是調用包含服務器輪詢邏輯e.g您的視圖控制器的消氣「視圖」的方法:

// force iOS to initialize the view controller 
[MyCustomVC view]; 

正如你所看到的,非常hackish的,不推薦。

+0

你好張,確實很有趣。在我花時間試用這個產品之前,你能告訴我這是不是一種應用程序商店的安全方法嗎?我的應用必須在應用商店中託管。謝謝 – ameyazing

+0

我發佈了一個使用這些黑客的應用程序。我寫的第一個應用程序的功能之一(現在你知道它爲什麼如此黑客)包括區域監視功能。我們需要一種方式,在應用程序從終止狀態重新啓動並進入區域後,向用戶展示交易。這就是我發現這兩個黑客的地方。似乎工作在我的情況下,應用程序是在應用程序商店:) – Zhang

+0

你好,張,我昨天試圖你砍,但無法得到它的工作。直到應用程序再次進入前臺,纔會調用可執行代碼。你能說明你點了一小段代碼嗎?你可以假設我的服務器輪詢代碼在AppDelegate中,所以我不需要調用任何視圖控制器。 – ameyazing