-1

我制作了一个触发本地通知的示例应用程序。

当通知触发时,它总是在设备的通知区域显示横幅,我已在图像中显示。在此处输入图像描述

但我想要警报而不是这个,并希望根据从该警报中选择的选项执行操作。

触发本地通知的代码如下。

-(IBAction)setNotification:(id)sender{

UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif == nil)
{
    return;
}

localNotif.timeZone = [NSTimeZone defaultTimeZone];

// Get the year, month, day from the date
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSTimeZoneCalendarUnit|NSSecondCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit fromDate:[NSDate date]];

// Set the second to be zero
components.minute = components.minute + 1;
components.second = 0;

// Create the date
NSDate *date = [[NSCalendar currentCalendar] dateFromComponents:components];
NSLog(@"Fire Date :: %@",date);
localNotif.fireDate = date;

localNotif.alertBody = [NSString stringWithFormat:@"First Alarm"];


localNotif.alertAction =@"Ok";

localNotif.soundName=@"Alarm_1.mp3";

localNotif.applicationIconBadgeNumber = 1;


localNotif.alertAction = @"Application name";
localNotif.HasAction = true;

// Schedule the notification
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];

}

如果有任何错误,任何机构都可以告诉我。

提前致谢。

4

3 回答 3

0

这是一个快速而简短的答案。你不能这样做。Apple 的文档仅说明 didReceiveLocalNotification。显示通知的方式不取决于开发人员。用户将使用设置选择他希望如何查看通知。

在您的情况下,只需通过在用户点击通知时实现委托回调来连接逻辑。

于 2013-10-24T15:03:40.547 回答
0

在设置 -> 通知中心 -> 您的应用程序 -> 警报中更改通知类型:

在此处输入图像描述

最初来自奎因“爱斯基摩人!”,由 IBG 引用

“这取决于您的意思。您可以根据设置 UILocalNotification 属性(如 alertBody、soundName 等)的方式来控制通知的显示方式。但是,如果您询问这些属性的方式被解释(用户可以在设置>通知中自定义的东西),这些是用户偏好,不会通过任何 API 公开。”

于 2013-10-24T06:43:38.407 回答
-1

您可以通过以下方法获取通知:

  • (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

编写此代码以从 userInfo 中获取数据:

[[userInfo objectForKey:@"aps"] objectForKey:@"price"]];

使用 userInfo Dict 获取通知值,然后您可以将该数据用于警报。

于 2013-10-24T06:35:00.557 回答