
앱보이키트 (Objective-C 소프트웨어 개발 키트라고도 함)는 더 이상 지원되지 않으며 Swift SDK. 새로운 기능, 버그 수정, 보안 업데이트 또는 기술 지원은 더 이상 제공되지 않지만 메시징 및 분석은 정상적으로 계속 작동합니다. 자세한 내용은 새로운 Braze Swift 소프트웨어 개발 키트 소개 를 참조하세요.
커스텀 처리 인앱 메시지 표시
ABKInAppMessageControllerDelegate가 설정되면, 인앱 메시지가 표시되기 전에 다음 델리게이트 메서드가 호출됩니다:
1
- (ABKInAppMessageDisplayChoice) beforeInAppMessageDisplayed:(ABKInAppMessage *)inAppMessage;
1
func beforeInAppMessageDisplayed(inAppMessage: ABKInAppMessage!) -> ABKInAppMessageDisplayChoice
ABKInAppMessageUIDelegate만 구현한 경우 다음 UI 델리게이트 메서드가 대신 호출됩니다:
1
- (ABKInAppMessageDisplayChoice) beforeInAppMessageDisplayed:(ABKInAppMessage *)inAppMessage withKeyboardIsUp:(BOOL)keyboardIsUp;
1
func beforeInAppMessageDisplayed(inAppMessage: ABKInAppMessage!, withKeyboardIsUp keyboardIsUp: Bool) -> ABKInAppMessageDisplayChoice
이 델리게이트 메서드를 구현하고 ABKInAppMessageDisplayChoice에 대해 다음 값 중 하나를 반환하여 인앱 메시지 처리를 커스터마이즈할 수 있습니다:
ABKInAppMessageDisplayChoice |
동작 |
|---|---|
Objective-C: ABKDisplayInAppMessageNowSwift: displayInAppMessageNow |
메시지가 즉시 표시됩니다. |
Objective-C: ABKDisplayInAppMessageLaterSwift: displayInAppMessageLater |
메시지가 표시되지 않고 스택의 맨 위로 다시 배치됩니다. |
Objective-C: ABKDiscardInAppMessageSwift: discardInAppMessage |
메시지가 폐기되며 표시되지 않습니다. |
beforeInAppMessageDisplayed: 델리게이트 메서드를 사용하여 인앱 메시지 표시 로직을 추가하거나, Braze가 표시하기 전에 인앱 메시지를 커스터마이즈하거나, Braze 인앱 메시지 표시 로직 및 UI를 완전히 옵트아웃할 수 있습니다.
구현 예제는 샘플 애플리케이션을 확인하세요.
표시 전에 인앱 메시지 재정의
인앱 메시지의 표시 동작을 변경하려면 필요한 표시 로직을 beforeInAppMessageDisplayed: 델리게이트 메서드에 추가해야 합니다. 예를 들어, 키보드가 현재 표시 중인 경우 화면 상단에서 인앱 메시지를 표시하거나, 인앱 메시지 데이터 모델을 가져와 직접 인앱 메시지를 표시할 수 있습니다.
세션이 시작될 때 인앱 메시지 캠페인이 표시되지 않는 경우, 필요한 표시 로직이 beforeInAppMessageDisplayed: 델리게이트 메서드에 추가되었는지 확인하세요. 이렇게 하면 키보드가 표시 중이더라도 화면 상단에서 인앱 메시지 캠페인을 표시할 수 있습니다.
다크 모드 비활성화
사용자 기기에 다크 모드가 활성화되어 있을 때 인앱 메시지에 다크 모드 스타일이 적용되지 않도록 하려면 ABKInAppMessage.enableDarkTheme 속성을 사용합니다. ABKInAppMessageControllerDelegate.beforeInAppMessageDisplayed: 또는 ABKInAppMessageUIDelegate.beforeInAppMessageDisplayed: 메서드 내에서 메서드의 inAppMessage 매개변수의 enableDarkTheme 속성을 NO로 설정합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// ABKInAppMessageControllerDelegate
- (ABKInAppMessageDisplayChoice)beforeInAppMessageDisplayed:(ABKInAppMessage *)inAppMessage {
...
inAppMessage.enableDarkTheme = NO;
...
return ABKDisplayInAppMessageNow;
}
// ABKInAppMessageUIDelegate
- (ABKInAppMessageDisplayChoice)beforeInAppMesssageDisplayed:(ABKInAppMessage *)inAppMessage
withKeyboardIsUp:(BOOL)keyboardIsUp {
...
inAppMessage.enableDarkTheme = NO;
...
return ABKDisplayInAppMessageNow;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// ABKInAppMessageControllerDelegate
func before(inAppMessageDisplayed inAppMessage: ABKInAppMessage) -> ABKInAppMessageDisplayChoice {
...
inAppMessage.enableDarkTheme = false
...
return ABKInAppMessageDisplayChoice.displayInAppMessageNow
}
// ABKInAppMessageUIDelegate
func before(inAppMessageDisplayed inAppMessage: ABKInAppMessage, withKeyboardIsUp keyboardIsUp: Bool) -> ABKInAppMessageDisplayChoice {
...
inAppMessage.enableDarkTheme = false
...
return ABKInAppMessageDisplayChoice.displayInAppMessageNow
}
표시 중 상태 표시줄 숨기기
Full 및 HTML 인앱 메시지의 경우, SDK는 기본적으로 메시지를 상태 표시줄 위에 배치하려고 시도합니다. 그러나 일부 경우 상태 표시줄이 인앱 메시지 위에 여전히 나타날 수 있습니다. iOS SDK 3.21.1 버전부터 startWithApiKey:에 전달된 appboyOptions 내에서 ABKInAppMessageHideStatusBarKey를 YES로 설정하여 Full 및 HTML 인앱 메시지를 표시할 때 상태 표시줄을 강제로 숨길 수 있습니다.
노출 횟수 및 클릭 수 기록
완전히 커스텀 처리를 구현하는 경우(예: beforeInAppMessageDisplayed:에서 ABKDiscardInAppMessage를 반환하여 Braze 인앱 메시지 표시를 우회하는 경우) 인앱 메시지 노출 횟수 및 클릭 수 기록은 자동으로 수행되지 않습니다. 인앱 메시지 모델을 사용하여 자체 UI를 구현하기로 선택한 경우, ABKInAppMessage 클래스에서 다음 메서드를 사용하여 분석을 기록해야 합니다:
1
2
3
4
// Registers that a user has viewed an in-app message with the Braze server.
- (void) logInAppMessageImpression;
// Registers that a user has clicked on an in-app message with the Braze server.
- (void) logInAppMessageClicked;
1
2
3
4
// Registers that a user has viewed an in-app message with the Braze server.
func logInAppMessageImpression()
// Registers that a user has clicked on an in-app message with the Braze server.
func logInAppMessageClicked()
또한 ABKInAppMessageImmersive의 서브클래스(즉, Modal 및 Full 인앱 메시지)에서 버튼 클릭을 기록해야 합니다:
1
2
// Logs button click analytics
- (void)logInAppMessageClickedWithButtonID:(NSInteger)buttonID;
1
2
// Logs button click analytics
func logInAppMessageClickedWithButtonID(buttonId: NSInteger)
메서드 선언
추가 정보는 다음 헤더 파일을 참조하세요:
구현 샘플
AppDelegate.m 인앱 메시지 샘플 앱을 참조하세요.