检查是否从本地通知启动iOS应用程序?
如何检测未处于活动、非活动或后台状态(已终止)的应用程序是否从本地通知启动?到目前为止,我已经在App Delegate的didFinishLaunchingWithOptions中尝试了两种方法:检查是否从本地通知启动iOS应用程序?,ios,notifications,Ios,Notifications,如何检测未处于活动、非活动或后台状态(已终止)的应用程序是否从本地通知启动?到目前为止,我已经在App Delegate的didFinishLaunchingWithOptions中尝试了两种方法: func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // METHOD 1: if
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// METHOD 1:
if let options = launchOptions {
if let key = options[UIApplicationLaunchOptionsLocalNotificationKey] {
notificationCenter.postNotification(NSNotification(name: "applicationLaunchedFromNotification", object: nil))
}
}
// METHOD 2:
let notification = launchOptions?[UIApplicationLaunchOptionsLocalNotificationKey] as! UILocalNotification!
if (notification != nil) {
notificationCenter.postNotification(NSNotification(name: "applicationLaunchedFromNotification", object: nil))
}
return true
}
在我的视图控制器中,我观察ViewDidLoad中的通知,并作为响应,设置UILabel的文本:
override func viewDidLoad() {
super.viewDidLoad()
notificationCenter.addObserver(self, selector: "handleAppLaunchFromNotification", name: "applicationLaunchedFromNotification", object: nil)
}
func handleAppLaunchFromNotification() {
debugLabel.text = "app launched from notification"
}
但是,从本地通知启动终止的应用程序后,UILabel的文本永远不会设置
我的问题是:
print()
您正在检查
didfishlaunchingwithoptions
中的本地通知。此方法包含仅用于远程通知的launchOptions
。如果应用程序处于终止状态,并且您对本地通知执行操作,则didReceiveLocalNotification
将在didFinishLaunchingWithOptions
方法之后获得调用。您正在didFinishLaunchingWithOptions
中检查本地通知。此方法仅包含用于远程的launchOptions
通知。如果应用程序处于终止状态,并且您对本地通知执行操作,则didReceiveLocalNotification
会在didFinishLaunchingWithOptions
方法之后调用。这取决于通知的观察者是否在NSNotification发布之前设置。我如何确保这一点?即使在应用程序终止后,viewDidLoad
中设置的观察者是否仍然存在?现在:视图加载并设置一个观察者,用户按下该视图中的一个按钮来设置通知,通知将在将来的某个日期触发。我希望能够在应用程序启动时从该通知响应用户启动应用程序。我不确定这是否重要,但我已经在Info.plist文件中明确选择了我的应用程序作为背景。因此,当点击home按钮(无背景)时,应用程序终止。这取决于通知的观察者是否在NSNotification发布之前设置。我如何确保这一点?即使在应用程序终止后,viewDidLoad
中设置的观察者是否仍然存在?现在:视图加载并设置一个观察者,用户按下该视图中的一个按钮来设置通知,通知将在将来的某个日期触发。我希望能够在应用程序启动时从该通知响应用户启动应用程序。我不确定这是否重要,但我已经在Info.plist文件中明确选择了我的应用程序作为背景。所以,当点击主页按钮(没有背景)时,应用程序就会终止。我对你的帖子有点困惑。根据苹果的说法,本地通知存在启动选项
。我不能用这个吗?你找到解决办法了吗?我被你的帖子弄糊涂了。根据苹果的说法,本地通知存在启动选项
。我不能用这个吗?你找到解决办法了吗?