gpt4 book ai didi

ios - 在 iOS 8 中请求本地通知权限,但仍然有应用程序支持 iOS 7

转载 作者:IT王子 更新时间:2023-10-29 07:46:20 26 4
gpt4 key购买 nike

我有一个使用本地通知的应用程序。在 iOS 7 中一切正常,但在 iOS 8 中,应用程序需要请求用户许可才能显示通知。要在 iOS 8 中请求权限,我正在使用:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{
[application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];
}

它在 Xcode 6 和 iOS 8 中运行良好。当我在 Xcode 5 中打开同一个项目时,错误是语义问题。 “使用未声明的标识符‘UIUserNotificationSettings’。”

如何让应用程序与 iOS 7 和 8 一起使用,并使通知在两个版本上都能正常工作。

最佳答案

以下答案做了一些假设:

  1. 应用在使用 Xcode 6 时必须使用 iOS 8 的 Base SDK 正确构建,在使用 Xcode 5 时必须使用 iOS 7 的 Base SDK 正确构建。
  2. 无论 Base SDK 和 Xcode 版本如何,该应用都必须支持 iOS 7(或更早版本)的部署目标。

代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// None of the code should even be compiled unless the Base SDK is iOS 8.0 or later
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000
// The following line must only run under iOS 8. This runtime check prevents
// it from running if it doesn't exist (such as running under iOS 7 or earlier).
if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) {
[application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];
}
#endif
}

所有这些都包含在 Apple SDK Compatibility Guide 中.

关于ios - 在 iOS 8 中请求本地通知权限,但仍然有应用程序支持 iOS 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24946650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com