친구 초대 미션

친구 초대 미션은 [Client Admin]에서 프로모션 등록 시 설정할 수 있는 게임 미션입니다. 친구 초대 코드를 공유하여 신규 유저를 초대하면 초대한 유저와 초대받은 유저가 모두 리워드를 받을 수 있습니다. 언어별 설정 방법이 다르므로 개발 언어를 먼저 확인해 주세요!


Android

런처 Activity 내 선언된 Javascript InterfacesharedInviteLink 케이스를 추가합니다. 해당 코드 실행 시 OS 공유 시트를 노출 시키게 됩니다.

Interface function
Description

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 핸들링 추가

  • WKWebViewuserContentController 에서 친구 초대 링크 공유 관련 이벤트 처리 로직을 추가합니다.

  • 런처는 postMessage 문자열 데이터 형태로 전달하기 때문에 JSON 형태로 디코딩 과정이 필요합니다.

  • 디코딩된 데이터를 부모 contentView의 onSharedInviteLink 콜백 함수에 전달합니다.

3. WebView가 포함된 ContentView 내에서 ShareSheet 클래스 호출

WebView 에 실행된 런처에서 친구 초대 링크 공유에 대한 이벤트가 발생하면 ContentView에 선언된 onSharedInviteLink 콜백 함수가 호출 됩니다.

  • shareItems state 값에 공유할 내용을 설정합니다.

  • isShowingShareSheet state 값 변경을 통해 ShareSheet 노출 여부를 결정합니다.


Flutter

🤝 OS 공유 시트 사용 시

1. 링크 공유 패키지 설치

아래 패키지를 설치하면 링크 공유 기능을 수행할 수 있습니다.

  • 사용 패키지: share_plus

    • 해당 패키지는 플랫폼의 공유 대화상자를 통해 콘텐츠 공유를 가능하게 합니다.

2. javascript handler 추가

런처를 사용하는 Screen 내 Javascript HandlersharedInviteLink 타입을 추가합니다. handlerName 값은 BlpLauncher 로 설정해야 합니다.

Type
Description

sharedInviteLink

친구 초대 링크 공유 시 호출

  • inviteCode - 발급된 초대코드

  • infoMessage - 안내 메세지

  • link - 초대 링크

share_plus 패키지를 통해서 친구 초대 링크를 공유하는 기능을 수행합니다.

🤝 카카오톡 공유 기능 사용 시

Flutter에서 카카오톡 공유 기능을 위해 추가적인 조치가 필요합니다. 카카오톡 실행 URL 오픈 시 필요한 아래 패키지를 설치해주세요.

flutter_inappwebviewshouldOverrideUrlLoading 에 아래 로직을 추가합니다.

  • 기존 앱 존재 시 : 앱 실행

  • 미설치 시 : 스토어 이동

iOS 환경의 경우 Info.plist 파일 내 kakaolink 값을 추가해주세요.


React Native

🤝 OS 공유 시트 사용 시

기본 제공되는 Share API 를 통해 친구 초대 링크를 공유하는 기능을 수행합니다. WebViewonMessage 함수 내에 해당 케이스를 추가합니다.

Type
Description

sharedInviteLink

친구 초대 링크 공유 시 호출되는 함수

  • inviteCode - 발급된 초대코드

  • infoMessage - 안내 메세지

  • link - 초대 링크

Share API 를 통해서 친구 초대 링크를 공유하는 기능을 수행합니다.

🤝 카카오톡 공유 기능 사용 시

React Native 앱으로 개발된 경우, 카카오톡 공유 기능을 위해 추가적인 조치가 필요합니다. 올바른 URL 스키마 처리를 위해 아래 패키지를 설치해주세요.

패키지 설치가 완료되면 WebView 관련 설정을 추가합니다.

  • originWhiteList

  • domStorageEnabled

  • onShouldStartLoadWithRequest

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사용하게 됩니다.

친구 초대 미션 사용 시 임베디드 코드 내 유저의 회원가입 시점 추가 전달이 필요합니다.

Type
Description

signUpAt

신규 유저 판단을 위한 회원가입 일시를 전달해야 합니다.

  • timestamp 형식 (10자리)

  • ex) 1717143687

개발에 대한 추가 설명이 더 필요하신가요?

"[Client Admin] 로그인 → 오른쪽 하단 채널톡 위젯" 클릭 후 개발 카테고리에 문의 남겨주시면 기술 개발팀에서 확인 후 연락드리겠습니다.

Last updated