2022 System Services
WWDC22 · 13 min · System Services
Explore SMS message filters
SMS message filter extensions can help people manage Messages by filtering SMS messages from unknown senders. Discover how to create apps with message filter extensions that automatically categorize SMS messages into folders and sub-folders based on message contents and other heuristics.
Watch at developer.apple.com ↗Code shown on screen · 2 snippets
Message filter extension example
func handle(_ capabilitiesRequest: ILMessageFilterCapabilitiesQueryRequest, context: ILMessageFilterExtensionContext, completion: @escaping (ILMessageFilterCapabilitiesQueryResponse) -> Void) {
let response = ILMessageFilterCapabilitiesQueryResponse()
// choose up to five sub-categories supported by the filter
response.transactionalSubActions = [.transactionalFinance,
.transactionalOrders,
.transactionalHealth]
response.promotionalSubActions = [.promotionalCoupons,
.promotionalOffers]
completion(response)
} Return categories for incoming messages
func handle(_ queryRequest: ILMessageFilterQueryRequest, context: ILMessageFilterExtensionContext, completion: @escaping (ILMessageFilterQueryResponse) -> Void) {
guard let message = queryRequest.messageBody else { return }
let response = ILMessageFilterQueryResponse()
switch(message) {
case _ where message.contains("debited"):
response.filterAction = .transaction
response.filterSubAction = .transactionalFinance
break
case _ where message.contains("coupon"):
response.filterAction = .promotion
response.filterSubAction = .promotionalCoupons
break
// update other cases
}
completion(response)
}