iOS 애플리케이션을 개발하다 보면 통화나 메시지를 통한 스팸이나 무단 광고를 차단하는 기능을 추가하고 싶을 수 있습니다. iOS 12부터 Apple은 스팸 통화 및 메시지를 식별하고 차단할 수 있는 IdentityLookupUI 프레임워크를 도입했습니다. 이 프레임워크를 사용하면 애플리케이션에서 통화나 메시지를 식별하거나 차단할 수 있습니다.
IdentityLookupUI 프레임워크 소개
IdentityLookupUI 프레임워크는 iOS 12.0 이상에서 사용 가능합니다. 이 프레임워크를 사용하면 통화와 메시지의 발신자를 식별하고 이에 대한 정보를 화면에 표시하여 사용자에게 전화나 메시지의 신뢰성을 판단할 수 있는 기능을 제공합니다.
IdentityLookupUI 프레임워크를 사용한 통화 및 메시지 차단
콜러ID 확장 프로그램 등록
IdentityLookupUI를 사용하기 위해서는, 콜러ID 확장 프로그램을 등록해야 합니다. Info.plist 파일에 다음과 같은 키-값 쌍을 추가합니다.
<key>NSExtension</key>
<dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.identitylookup.callerid</string>
<key>NSExtensionMainStoryboard</key>
<string>MainInterface</string>
<key>NSExtensionAttributes</key>
<dict>
<key>IncludeInCallDirectory</key>
<true/>
</dict>
</dict>
콜러ID 확장 프로그램 구현
콜러ID 확장 프로그램을 구현하기 위해서는 ILCallDirectoryProvider 및 ILClassificationAction 열거형의 하위 클래스를 생성해야 합니다. 콜러ID 정보를 추가하고 차단 규칙을 설정할 수 있습니다.
import IdentityLookup
class CallDirectoryHandler: ILCallDirectoryProvider {
override func beginRequest(with context: ILCallDirectoryExtensionContext) {
if let phoneNumbersToBlock = // ... 차단할 전화번호 목록 {
for phoneNumber in phoneNumbersToBlock {
context.addBlockingEntry(withNextSequentialPhoneNumber: phoneNumber)
}
}
}
}
메시지 필터 확장 프로그램 구현
메시지 필터 확장 프로그램을 구현하기 위해서는 ILMessageFilterExtension 및 ILMessageFilterQueryHandling 프로토콜을 채택한 클래스를 생성해야 합니다. 메시지를 분류하고 차단할 수 있습니다.
import IdentityLookup
class MessageFilterExtension: ILMessageFilterExtension {
override func handle(query: ILMessageFilterQuery, completion: @escaping ([ILMessageFilterExtensionContext]) -> Void) {
if let messageToBlock = // ... 차단할 메시지 {
let response = ILMessageFilterExtensionContext.init(for: query, decision: .none)
completion([response])
}
}
}
마무리
IdentityLookupUI 프레임워크를 사용하면 통화와 메시지의 무단 수신을 식별하고 차단하는 기능을 쉽게 구현할 수 있습니다. 이를 통해 애플리케이션의 사용자들이 더욱 안전하고 편리하게 커뮤니케이션을 할 수 있도록 도와줄 수 있습니다. 추가로, Apple 공식 문서를 참고하여 더 자세한 내용을 확인할 수 있습니다.