рдпрд╣ рд▓реЗрдЦ, рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреА рддрд░рд╣, рдЖрдИрдУрдПрд╕ 12 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рд╕реВрдЪрдирд╛рдУрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИред
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВрдиреЗ рд╕рд╛рдорд╛рдиреНрдп рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереА, рдЗрд╕ рдмрд╛рд░ рдореИрдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рд╕рдореВрд╣ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдХрд░реВрдБрдЧрд╛ред
IOS 12 рдореЗрдВ рдЧреНрд░реБрдкрд┐рдВрдЧ
рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реА рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП iOS 12 рдореЗрдВ рд╕рдореВрд╣реАрдХреГрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╕рдореВрд╣реАрдХрд░рдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ 5 рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рд╕реВрдЪрдирд╛рдПрдВ рд╕реНрдЯреИрдХ рд╣реЛрдиреЗ рд▓рдЧреЗрдВрдЧреАред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдореВрд╣реАрдХрд░рдг рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИред
- рд╕реНрд╡рдЪрд╛рд▓рд┐рдд (рдбрд┐рдлрд╝реЙрд▓реНрдЯ) - рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдореВрд╣ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
- рдРрдк рджреНрд╡рд╛рд░рд╛ - рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рд╕рднреА рд╕реВрдЪрдирд╛рдПрдВ рдПрдХрд▓ рд╕реНрдЯреИрдХ рдореЗрдВ рдЬреЛрдбрд╝ рджреА рдЬрд╛рддреА рд╣реИрдВред
- рдСрдл - рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╕рдореВрд╣рди рдЕрдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЧреНрд░реБрдкрд┐рдВрдЧ рд╕реЗрдЯрдЕрдк
рд╣рдо рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд╕рдореВрд╣рди рдХреЛ рддрднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЛ рдереНрд░реЗрдб-рдЖрдИрдбреА рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рдо рдереНрд░реЗрдб-рдЖрдИрдбреА рдХреЛ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрд╢реАрд░реНрд╖рдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдореЗрдВ рднреА рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ:
let content = UNMutableNotificationContent() content.threadIdentifier = threadId content.subtitle = "Thread ID: \(threadId)"
рд╣рдо рдХрдИ рд╕рдВрджреЗрд╢ рднреЗрдЬрддреЗ рд╣реИрдВ рдФрд░ рд╕рдореВрд╣реАрдХрд░рдг рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрддреЗ рд╣реИрдВ:
рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдкреБрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдереНрд░реЗрдб-рдЖрдИрдбреА рднреА рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
{ "aps" : { "alert" : { "title" : "Cat Title" "body" : "Cat Body" } "thread-id" : "all-cats" } }
рдЬрдм рдЖрдк рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ UNNotificationCategory рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ, рдЕрдиреНрдпрдерд╛ рдЙрдиреНрд╣реЗрдВ рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
UNNotificationCategory(identifier: "Cat-Category", actions: actions, intentIdentifiers: ["all-cats", "3-star-cats"], options: [])
рдПрдХ рд╢реНрд░реЗрдгреА рдХреЗ рд▓рд┐рдП, рдЖрдк рдЙрд╕ рд╕рдВрджреЗрд╢ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдпрд╣ iOS 12 рдХреЗ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЖрдк рдХреЗрд╡рд▓ рд╢реНрд░реЗрдгреА рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рддреЗ рд╕рдордп рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
UNNotificationCategory(identifier: "category-simple", actions: actions, intentIdentifiers: ["all-cats", "3-star-cats"], hiddenPreviewsBodyPlaceholder: nil, categorySummaryFormat: "%u %@", options: [])
% U рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдореВрд╣ рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЗрд╕реЗ рд╕рд╛рд░рд╛рдВрд╢ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдиреЗ рдмрд┐рд▓реНрд▓рд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдирдпрд╛ рдЪрдпрди рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ 10 рдирдП рдЪрд┐рддреНрд░ рд╣реИрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ 10 рдмрдВрджреВрдХреЗрдВ рднреЗрдЬрдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдЖрдк 10. рдХреЗ рдмрд░рд╛рдмрд░ рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред % @ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рдЪрд░ рд╕рд╛рд░рд╛рдВрд╢ рдХрд╛ рдорд╛рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:
let content = UNMutableNotificationContent() content.summaryArgumentCount = 10 content.summaryArgument = " "
рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 3 рд╕рдВрджреЗрд╢ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рд╕рд╛рд░рд╛рдВрд╢ рд╕рдВрдЧреНрд░рд╣ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 20 рдХреЗ рдмрд░рд╛рдмрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИред рдФрд░ рд╕рд╛рд░рд╛рдВрд╢ рд╕рд╛рд░рд╛рдВрд╢ рд╣рдореЗрдВ рдЙрд╕ рд╢реНрд░реЗрдгреА рдХрд╛ рдирд╛рдо рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╕реВрдЪрдирд╛рдПрдВ рдзрдХреНрдХрд╛ рджреЗрддреА рд╣реИрдВред рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рд╕реНрдерд╛рдиреАрдпрдХрд░рдг
рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХрд╛рд░реНрдп рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВред
рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреБрдВрдЬреА рдХреЛ NOTIFICATION_SUMMARY рдореЗрдВ рдмрджрд▓реЗрдВ, рдЕрдиреНрдпрдерд╛ рд╢рдмреНрджрдХреЛрд╢ рд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЬрдм рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдХреБрдВрдЬреА рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢реЗрд╖ рдорд╛рди рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рд╣реИрдВ:
рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ , рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдЪреБрдиреЗрдВред
рд╣рдо рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓реЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред
рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд░реВрд╕реА (рдЖрд░рдпреВ) рдХреЛ рд╕реНрдерд╛рдиреАрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХреЛрдб рдореЗрдВ, рд╣рдо рд╕реНрдерд╛рдиреАрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╢реНрд░реЗрдгреАрд╕реНрдорд░реАрдлрд╝реЙрд░реНрдореЗрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ:
let summary = NSString.localizedUserNotificationString(forKey: "NOTIFICATION_SUMMARY", arguments: nil) let category = UNNotificationCategory(identifier: "Cat-Category", actions: actions, intentIdentifiers: ["all-cats", "3-star-cats"], hiddenPreviewsBodyPlaceholder: nil, categorySummaryFormat: summary, options: [])
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдЙрддреНрдХреГрд╖реНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреЛрдб рдХреЛ рдЬреАрдердм рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред WWDC рдореЗрдВ рджреЛ рд░рд┐рдкреЛрд░реНрдЯреЗрдВ рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдереАрдВ: рд╡реНрд╣рд╛рдЯреНрд╕ рдиреНрдпреВ рдЗрди рдпреВрдЬрд░ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдФрд░ рдЧреНрд░реБрдкреЗрдб рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ ред рд╣рдо 28 рд╕рд┐рддрдВрдмрд░ рдХреЛ рдорд╛рд╕реНрдХреЛ рдореЗрдВ MBLT DEV 2018 рдореЗрдВ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред
рдЖрдкрдХрд╛ рд╕рдкреНрддрд╛рд╣ рдордВрдЧрд▓рдордп рд╣реЛ! ^ _ ^