![](/img/trans.png)
[英]Objective-C IOS 7 push notification save data when app not running?
[英]Save data from ios push notification if app is not running(Parse)
我正在使用解析推送通知服務。
如果我的應用程序正在運行,我將在以下委托函數中從通知中獲取數據。
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
PFPush.handlePush(userInfo)
println(userInfo)
if application.applicationState == UIApplicationState.Inactive {
}
}
但是,如果我的應用程序未運行並且生成了通知,那么我不知道該使用哪個函數來生成該通知並從該通知中獲取數據。
如果您的應用未運行(后台或前台),則獲取通知有效負載數據的唯一方法是用戶通過點擊通知打開您的應用。 如果發生這種情況,您可以使用didFinishLaunchingWithOptions
方法檢索數據。 除此之外,存儲有效載荷數據的最佳方法是在發送通知時將其存儲在服務器端數據庫中。 然后,您始終可以請求檢索通知。 這還將為您提供管理徽章計數的機制。
你可以節省您的通知到NSUserDefaults
檢查后,您的應用程序再次激活,如果有新的數據存儲在您的內NSUserDefaults
。 我將創建一個userInfo-objects數組並在您的數組中添加新條目。
再次啟用應用程序后,您可以清除帶有未顯示通知的數組。
let defaults = NSUserDefaults.standardUserDefaults()
var unseenNotifications:[[NSObject: AnyObject]] = []
//Set
defaults.setValue(unseenNotifications, forKey: "unseen")
//Get
unseenNotifications = defaults.valueForKey("unseen") as! [[NSObject : AnyObject]]
不確定Swift還是Parse,但是如果您使用的是Objective-C,則通知會通過以下方式傳遞給非運行的應用:
- (BOOL)application:(UIApplication *)app didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSDictionary *remoteNotify = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
}
假設用戶打開了您的通知。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.