친구 초대 미션
친구 초대 미션은 [Client Admin]에서 프로모션 등록 시 설정할 수 있는 게임 미션입니다. 친구 초대 코드를 공유하여 신규 유저를 초대하면 초대한 유저와 초대받은 유저가 모두 리워드를 받을 수 있습니다. 언어별 설정 방법이 다르므로 개발 언어를 먼저 확인해 주세요!
Android
런처 Activity 내 선언된 Javascript Interface 에 sharedInviteLink 케이스를 추가합니다.
해당 코드 실행 시 OS 공유 시트를 노출 시키게 됩니다.
sharedInviteLink()
친구 초대 링크 공유 시 호출되는 함수
parameters
inviteCode- 발급된 초대코드infoMessage- 안내 메세지link- 초대 링크
// 블리피 Launcher Web <-> App 인터페이스 규격
class ExampleWebAppInterface(private val mContext: Context) {
...
@JavascriptInterface
fun sharedInviteLink(inviteCode: String, infoMessage: String, link: String) {
// 초대 미션 공유
val msg = "초대코드: $inviteCode\n$infoMessage\n$link"
// Android Sharesheet를 통해 텍스트 콘텐츠를 공유합니다.
val sendIntent: Intent = Intent().apply {
action = Intent.ACTION_SEND
putExtra(Intent.EXTRA_TEXT, msg)
type = "text/plain"
}
val shareIntent = Intent.createChooser(sendIntent, null)
mContext.startActivity(shareIntent)
}
...
}iOS
1. 링크 공유 시트 노출을 위한 구조체 생성
친구 초대 데이터를 전달 받고 iOS 앱 안에서 공유 시트를 노출 시키는 구조체를 생성합니다.
공유 시트 노출을 위해
UIViewControllerRepresentable사용
2. WebView 구조체에서 Script Message 핸들링 추가
WKWebView의userContentController에서 친구 초대 링크 공유 관련 이벤트 처리 로직을 추가합니다.런처는
postMessage문자열 데이터 형태로 전달하기 때문에 JSON 형태로 디코딩 과정이 필요합니다.디코딩된 데이터를 부모 contentView의
onSharedInviteLink콜백 함수에 전달합니다.
3. WebView가 포함된 ContentView 내에서 ShareSheet 클래스 호출
WebView 에 실행된 런처에서 친구 초대 링크 공유에 대한 이벤트가 발생하면 ContentView에 선언된 onSharedInviteLink 콜백 함수가 호출 됩니다.
shareItemsstate 값에 공유할 내용을 설정합니다.isShowingShareSheetstate 값 변경을 통해ShareSheet노출 여부를 결정합니다.
Flutter
🤝 OS 공유 시트 사용 시
1. 링크 공유 패키지 설치
아래 패키지를 설치하면 링크 공유 기능을 수행할 수 있습니다.
사용 패키지:
share_plus해당 패키지는 플랫폼의 공유 대화상자를 통해 콘텐츠 공유를 가능하게 합니다.
2. javascript handler 추가
런처를 사용하는 Screen 내 Javascript Handler 에 sharedInviteLink 타입을 추가합니다. handlerName 값은 BlpLauncher 로 설정해야 합니다.
sharedInviteLink
친구 초대 링크 공유 시 호출
inviteCode- 발급된 초대코드infoMessage- 안내 메세지link- 초대 링크
3. sharedInviteLink(inviteCode, infoMessage, link)
share_plus 패키지를 통해서 친구 초대 링크를 공유하는 기능을 수행합니다.
🤝 카카오톡 공유 기능 사용 시
Flutter에서 카카오톡 공유 기능을 위해 추가적인 조치가 필요합니다. 카카오톡 실행 URL 오픈 시 필요한 아래 패키지를 설치해주세요.
flutter_inappwebview 내 shouldOverrideUrlLoading 에 아래 로직을 추가합니다.
기존 앱 존재 시 : 앱 실행
미설치 시 : 스토어 이동
iOS 환경의 경우 Info.plist 파일 내 kakaolink 값을 추가해주세요.
React Native
🤝 OS 공유 시트 사용 시
기본 제공되는 Share API 를 통해 친구 초대 링크를 공유하는 기능을 수행합니다.
WebView 의 onMessage 함수 내에 해당 케이스를 추가합니다.
sharedInviteLink
친구 초대 링크 공유 시 호출되는 함수
inviteCode- 발급된 초대코드infoMessage- 안내 메세지link- 초대 링크
1. sharedInviteLink(inviteCode, infoMessage, link)
Share API 를 통해서 친구 초대 링크를 공유하는 기능을 수행합니다.
🤝 카카오톡 공유 기능 사용 시
React Native 앱으로 개발된 경우, 카카오톡 공유 기능을 위해 추가적인 조치가 필요합니다. 올바른 URL 스키마 처리를 위해 아래 패키지를 설치해주세요.
패키지 설치가 완료되면 WebView 관련 설정을 추가합니다.
originWhiteListdomStorageEnabledonShouldStartLoadWithRequest
handleShouldStartLoadWithRequest 메서드 내에서 AOS, iOS 플랫폼 별 처리를 진행합니다.
앱이 설치된 경우는 앱을 실행하고, 앱 미설치 시 스토어로 이동하게 됩니다.
Android 추가 처리
AndroidManifest.xml 파일 내 수정이 필요합니다.
<queries></queries>선언을 통해kakaolink외부intents를 명시합니다.<application>및<activity>태그 내android:exported속성 값을true로 설정합니다.
iOS
Info.plist 파일 내 kakaolink URL 스키마 추가가 필요합니다.
Web
Web 도메인의 서비스인 경우 블리피 런처에서 기본적으로 Web Share API사용하게 됩니다.
친구 초대 미션 사용 시 임베디드 코드 내 유저의 회원가입 시점 추가 전달이 필요합니다.
signUpAt
신규 유저 판단을 위한 회원가입 일시를 전달해야 합니다.
timestamp 형식 (10자리)
ex) 1717143687
Last updated