当前位置: 首页 > 知识库问答 >
问题:

Parse.com UIRemoteNotificationType已弃用

公风史
2023-03-14

按照push通知的parse.com教程,我将这段快速代码放入我的应用程序didFinishLaunchingWithOptions方法中:

        // Register for Push Notitications
    if application.applicationState != UIApplicationState.Background {
        // Track an app open here if we launch with a push, unless
        // "content_available" was used to trigger a background push (introduced in iOS 7).
        // In that case, we skip tracking here to avoid double counting the app-open.
        
        let preBackgroundPush = !application.respondsToSelector("backgroundRefreshStatus")
        let oldPushHandlerOnly = !self.respondsToSelector("application:didReceiveRemoteNotification:fetchCompletionHandler:")
        var pushPayload = false
        if let options = launchOptions {
            pushPayload = options[UIApplicationLaunchOptionsRemoteNotificationKey] != nil
        }
        if (preBackgroundPush || oldPushHandlerOnly || pushPayload) {
            PFAnalytics.trackAppOpenedWithLaunchOptions(launchOptions)
        }
    }
    if application.respondsToSelector("registerUserNotificationSettings:") {
        let userNotificationTypes = UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound
        let settings = UIUserNotificationSettings(forTypes: userNotificationTypes, categories: nil)
        application.registerUserNotificationSettings(settings)
        application.registerForRemoteNotifications()
    } else {
        let types = UIRemoteNotificationType.Badge | UIRemoteNotificationType.Alert | UIRemoteNotificationType.Sound
        application.registerForRemoteNotificationTypes(types)
    }

我收到了两个警告:

iOS 8.0版本中不推荐使用“UIRemoteNotificationType”:将UIUserNotificationType用于用户通知,将registerForRemoteNotifications用于接收远程通知.

iOS 8.0版本中不推荐使用“Register ForRemoteNotificationStypes”:请改用registerForRemoteNotifications和RegisterUserNotificationSettings

我能把它告诉我的东西换掉吗?

共有1个答案

公冶泰
2023-03-14

答案是很黑很白的。是的,你可以简单地交换它,但有一个警告:

如果你的目标是iOS7设备,那么不,你需要它。不过,如果你是在为iOS7开发……我的意见,别说了。截至8月31日,根据苹果公司的数据,没有多少用户还在他们的设备上安装了这款操作系统,而这一数据甚至还不包括公开版的iOS9s,所以你将大量的时间浪费在了一个没人使用的操作系统上。然而,如果您真的必须支持iOS7,那么除了不推荐的版本之外,还需要包括所有这些。否则,您可以按照您在非弃用版本中所述的那样交换它。

下面是一个Swift2.0示例:

if #available(iOS 8.0, *) {
   let types: UIUserNotificationType = [.Alert, .Badge, .Sound]
   let settings = UIUserNotificationSettings(forTypes: types, categories: nil)
   application.registerUserNotificationSettings(settings)
   application.registerForRemoteNotifications()
} else {
   let types: UIRemoteNotificationType = [.Alert, .Badge, .Sound]
   application.registerForRemoteNotificationTypes(types)
}
 类似资料:
  • 问题内容: 今天,我决定将我的android应用程序从Java转换为Kotlin!:)但是,当我输入以下内容时,我感到非常惊讶: 然后Android Studio告诉我:“’getActionView(MenuItem!):View!’ 已弃用。Java中已弃用“ 因此,在问您解决方案之前,我先问谷歌解决方案是什么,我相信我找到了解决方案:“直接使用getActionView()”。 所以我像这样

  • 目前我正在开发一个带有三个菜单项的底部导航栏的应用程序。我曾使用来单击项目。但现在我面临的问题是该方法已贬值。 应用程序语言:Java 问题:“setOnNavigationItemSelectedListener(com.google.android.material.bottomnavigation.BottomNavigationView.OnNavigationItemSelectedLi

  • 由于API 27已弃用。对此最好的替代方案是什么? 在我的例子中,我知道需要使用之类的东西,但我不知道在我的代码中这需要去哪里。 我在班上得到了这些进口货: 但是 被划掉了。

  • 我一直在开发一个使用Google Drive API的Android应用程序。它最初是从这里的quickstart示例构建的。API调用的简化序列(此处未显示正确的错误处理)是: 它一直运行良好,我正准备发布我的应用程序。但是,在驱动器API更新之后,我突然收到一个警告 方法usingOAuth2(Context,String,String...)GoogleAccountCredential是不

  • Variable (已弃用) Variable 是早期添加到 RxSwift 的概念,通过 “setting” 和 “getting”, 他可以帮助我们从原先命令式的思维方式,过渡到响应式的思维方式。 但这只是我们一厢情愿的想法。许多开发者滥用 Variable,来构建 重度命令式 系统,而不是 Rx 的 声明式 系统。这对于新手很常见,并且他们无法意识到,这是代码的坏味道。所以在 RxSwift

  • 问题内容: 我正在3.6.0版中使用Hibernate,并且AnnotationConfiguration标记为已弃用。 这是我的HibernateUtil.java类中的行: 什么是AnnotationConfiguration的替代品? 问题答案: “所有功能已移至配置”:http : //docs.jboss.org/hibernate/core/3.6/javadocs/org/hiber

  • 问题内容: 我最近将我的项目的Jasper Reports库从 3.7.6 升级到了 6.0.0 。我终于可以进行Maven构建,并且报告工作得很好。但是, setParameter() 函数在两个发行版之间似乎已被弃用,并且我不确定如何重构我的代码以适应此问题。 不推荐使用的代码示例: 我浏览了SourceForge页面,可以看到它已被 ExporterInput , ExporterConfi

  • 今天,我试图设置,但我发现它不推荐使用。