하이브리드 연동하기

적용 가이드

[1단계] 웹 Short-form 적용하기

숏폼을 서비스하기 위해 웹 연동이 우선 진행되어야 합니다. Short-form 웹 연동을 위해 다음 링크를 참고해주세요.

웹 페이지에 설치하기

[2단계] 네이티브 코드 적용하기

project/build.gradle에 아래 코드를 추가하세요.

allprojects {
    repositories
        ...
        maven { url 'https://shoplivesdk.jfrog.io/artifactory/shoplive-sdk/' }
        ...
    }
}

app/build.gradle에 아래 코드를 추가하세요.

dependencies {
    def shoplive_sdk_version = "1.4.0"
    def your_exoplayer_version = "2.18.1"
    def shoplive_exoplayer_version = your_exoplayer_version + "." + "3"

    // For library - combined packaging
//    implementation "cloud.shoplive:shoplive-sdk-all:$shoplive_sdk_version" // live + short-form

    // For submodules
//    implementation "cloud.shoplive:shoplive-common:$shoplive_sdk_version" // must required
//    implementation "cloud.shoplive:shoplive-exoplayer:$shoplive_exoplayer_version" // must required
//    implementation "cloud.shoplive:shoplive-sdk-core:$shoplive_sdk_version" // for live player
//    implementation "cloud.shoplive:shoplive-network:$shoplive_sdk_version" // for short-form player
//    implementation "cloud.shoplive:shoplive-short-form:$shoplive_sdk_version" // for short-form player
}

고객사 웹 Activity에 아래 코드를 추가하세요.

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    
    webView.settings.domStorageEnabled = true // Required
    webView.settings.javaScriptEnabled = true // Required

    ShopLiveShortform.connectBridgeInterface(this, webView) // Required
    ShopLiveShortform.receiveBridgeInterface(this, webView) // Required
    
    webView.webViewClient = object : WebViewClient() {
        ...
        // Required
        override fun doUpdateVisitedHistory(view: WebView?, url: String?, isReload: Boolean) {
            super.doUpdateVisitedHistory(view, url, isReload)
            ShopLiveShortform.updateVisitedHistory(view, url, isReload)
        }
        ...
    }
    
    // Optional
    ShopLiveShortform.setHandler(object : ShopLiveShortformFullTypeHandler() {
        override fun onEvent(command: String, payload: String?) {
            // Do something
                }
        
        override fun onError(error: ShopLiveCommonError) {
                        // Do something
        }
        
        override fun onShare(activity: Activity, data: ShopLiveShortformData?, url: String?) {
                        // Do something
        }
    })
}