首先我想知道,当我点击本地通知时会调用哪种特定方法。我想点击通知打开一个网址。下面是代码应用程序委托。 现在的问题是,即使我没有点击通知,网址也会自动打开。如果你知道的话请指导我。谢谢
- (void)application:(UIApplication *)application didReceiveLocalNotification: (UILocalNotification *)notifyAlarm
{
application.applicationIconBadgeNumber = 0;
NSLog(@"Notification tapped :) ");
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com.pk"]]; }
答案 0 :(得分:6)
- (void)application:(UIApplication *)application didReceiveLocalNotification: (UILocalNotification *)notifyAlarm
每次通知触发时都会调用此方法。
要在点击通知时打开网址,您必须检查应用的状态。
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
UIApplicationState appState = UIApplicationStateActive;
if ([application respondsToSelector:@selector(applicationState)])
appState = application.applicationState;
if (appState == UIApplicationStateActive)
{
// Don't open Url.
}
else
{
// Open Url.
}
}
答案 1 :(得分:2)
请查看Local and Remote Notification Programming Guide from Apple,“处理本地和远程通知”部分。
如果点击操作按钮(在运行iOS的设备上),系统将启动应用程序,应用程序将调用其委托的应用程序:didFinishLaunchingWithOptions:method(如果已实现);它传入通知有效负载(用于远程通知)或本地通知对象(用于本地通知)。
后来说
[...]获取applicationState属性的值并对其进行评估。如果值为UIApplicationStateInactive,则用户点击操作按钮;如果值为UIApplicationStateActive,则应用程序在收到通知时位于最前面。
答案 2 :(得分:0)
尝试检查application.applicationState。如果应用程序在前台处于活动状态,则不会打开URL。