2016-10-04 20 views
6

Vấn đề:Cách đặt số huy hiệu biểu tượng ứng dụng trong iOS 10?

Tôi cố gắng để thiết lập một số huy hiệu biểu tượng ứng dụng trong iOS 10, tuy nhiên nó là không. Tôi hiểu rằng UIUserNotificationSettings hiện không được chấp nhận trong iOS và UNNotificationSettings sẽ thay thế nó.

Câu hỏi:

Làm thế nào để tôi sửa đổi mã dưới đây để sử dụng UNNotificationSettings để cập nhật biểu tượng số huy hiệu trong iOS 10? Hoặc là có một phương pháp ngắn gọn?

Code:

Các mã sau đây cho thấy làm thế nào tôi thiết lập phù hiệu từ iOS 7 - iOS 9.

let badgeCount: Int = 123 
let application = UIApplication.sharedApplication() 

if #available(iOS 7.0, *) { 
    application.applicationIconBadgeNumber = badgeCount 
} 

if #available(iOS 8.0, *) { 
    application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [.Badge], categories: nil)) 
    application.applicationIconBadgeNumber = badgeCount 
} 

if #available(iOS 9.0, *) { 
    application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [.Badge], categories: nil)) 
    application.applicationIconBadgeNumber = badgeCount 
} 

if #available(iOS 10.0, *) { 
    // ????? 
} 
+2

Tôi đang sử dụng giống như mã của bạn cho iOS9 và nó làm việc trên các thiết bị iOS10 của tôi về thể chất lẫn trong mô phỏng. –

+1

nhưng tôi đoán bạn đang tìm kiếm một câu trả lời trong 3 nhanh chóng? –

+0

Cảm ơn bạn. Có, một câu trả lời Swift 3 sẽ hữu ích. Nhưng đó là thú vị mà nó đang làm việc trên iOS 10 xem xét nó không được chấp nhận? https://developer.apple.com/reference/uikit/uiusernotificationsettings Tôi hơi bối rối một chút. – user4806509

Trả lời

4

Bạn cần phải thực hiện UserNotifications vào AppDelegate.

import UserNotifications 

@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate { 

Và sau đó sử dụng đoạn mã sau trong didFinishLaunchingWithOptions:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 

    UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { (granted, error) in 
     if error != nil { 
      // 
     } 
    } 
    return true 

} 

Here bạn có thể tìm thấy tấn công cụ quan trọng trên thông báo chủ đề.

Đối với huy hiệu:

let content = UNMutableNotificationContent() 
content.badge = 10 // your badge count 
+0

Cảm ơn bạn @David Seek. Tôi sẽ cho đi. – user4806509

+0

Cảm ơn @David Seek, vẫn chưa thử nghiệm điều này. Tôi có một loại huy hiệu biểu tượng ứng dụng khác với một tiền thưởng mà bạn có thể giúp giải quyết. http://stackoverflow.com/questions/39922580/voiceover-accessibility-label-and-hint-for-an-app-icon-badge-number – user4806509

Các vấn đề liên quan