@H_403_2@
我一直在寻找答案,但我似乎找不到答案.我想要做的是让我的应用程序在后台运行应用程序时发送本地通知,当用户打开通知时,它会将他们带到网站.我已经完成了所有设置,但它一直打开应用程序,而不是去网站.
我的问题是,这甚至可能吗?如果是这样,请问下面我的代码出错了?谢谢您的帮助.
码:
– (void)applicationDidEnterBackground:(UIApplication *)应用程序
{
//使用此方法释放共享资源,保存用户数据,使计时器无效,并存储足够的应用程序状态信息,以便将应用程序恢复到当前状态,以防以后终止.
//如果您的应用程序支持后台执行,则在用户退出时调用此方法而不是applicationWillTerminate:
NSDate *date = [NSDate date]; NSDate *futureDate = [date dateByAddingTimeInterval:3]; notifyAlarm.fireDate = futureDate; notifyAlarm.timeZone = [NSTimeZone defaultTimeZone]; notifyAlarm.repeatInterval = 0; notifyAlarm.alertBody = @"Visit Our Website for more info"; [app scheduleLocalNotification:notifyAlarm]; if ( [notifyAlarm.alertBody isEqualToString:@"Visit Our Website for more info"] ) { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://www.bluemoonstudios.com.au"]]; }
解决方法
在您的业务逻辑中
-(void)scheduleNotificationForDate:(NSDate *)fireDate{ UILocalNotification *notification = [[UILocalNotification alloc] init]; notification.fireDate = fireDate; notification.alertAction = @"View"; notification.alertBody = @"New Message Received"; notification.userInfo = @{@"SiteURLKey": @"http://www.google.com"}; [[UIApplication sharedApplication] scheduleLocalNotification:notification]; }
在你的AppDelegate中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey]; if(notification != nil){ NSDictionary *userInfo = notification.userInfo; NSURL *siteURL = [NSURL URLWithString:[userInfo objectForKey:@"SiteURLKey"]]; [[UIApplication sharedApplication] openURL:siteURL]; } } -(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{ NSDictionary *userInfo = notification.userInfo; NSURL *siteURL = [NSURL URLWithString:[userInfo objectForKey:@"SiteURLKey"]]; [[UIApplication sharedApplication] openURL:siteURL]; }
@H_403_2@