For AI agents: visit https://docs.sauce.im/llms.txt for an index of all pages formatted in Markdown and endpoints in OpenAPI.
Swift
class MyCustomViewController: SauceClipViewController {
override func viewDidLoad() {
super.viewDidLoad()
let config = SauceClipConfig()
...
isAddCartEnabled: true, // 장바구니 추가
isMoveCartEnabled: true, // 장바구니 이동
...
}
}
extension MyCustomViewController: SauceClipDelegate {
func sauceClipManager(_ manager: SauceClipViewController, didReceiveAddCartMessage addCartInfo: SauceCartInfo?) {
}
func sauceClipManager(_ manager: SauceClipViewController, didReceiveMoveCartMessage: WKScriptMessage?) {
}
}
Swift
// 변경 전
func sauceClipManager(_ manager: SauceClipViewController, didReceiveMoveCartMessage cartInfo: SauceCartInfo?) {
print(cartInfo?.clipIdx)
}
// 변경 후
func sauceClipManager(_ manager: SauceClipViewController, didReceiveMoveCartMessage: WKScriptMessage?) {
// 장바구니 이동
}
넓이는 100% 입니다. top 위치만 설정해주세요
Swift
NSLayoutConstraint.activate([
sauceCurationView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
]
화면 전환시 아래 코드를 참고해주세요.
Swift
import UIKit
import WebKit
import SauceLive_iOS
...
// 화면 전환 시
let sauceClipViewController = MyCustomViewController()
PIPKit.show(with: sauceClipViewController)
// 화면 닫을 시
PIPKit.dismiss(animated: true)
컨피그 설정에서 PIP Size 를 설정합니다.
Swift
import SauceClip_iOS
class MyCustomViewController: SauceClipViewController {
override func viewDidLoad() {
super.viewDidLoad()
// SauceClipDelegate 에서의 처리여부 (true/false)
let config = SauceClipConfig(
isEnterEnabled: true,
isExitEnabled: true,
isMoveProductEnaled: true,
isMoveCartEnabled: true,
isOnShareEnabled: true,
pipSize: CGSize(width: 100, height: 200), //PIP 구현시 사이즈 조절: 옵셔널
delegate: self
)
configure(with: config)
...
}
}
이벤트에 PIP 활성화 하는 코드 startPIPMode() 를 추가합니다.
Swift
extension MyCustomViewController: SauceClipDelegate {
func sauceClipManager(_ manager: SauceClipViewController, didReceiveMoveProductMessage productInfo: SauceProductInfo?) {
startPictureInPicture()
}
}
Swift
extension SauceCurationViewController: SauceCurationDelegate {
func sauceCurationManager(_ manager: SauceCurationLib, didReceiveErrorMessage sauceError: SauceError?) {
}
}
Swift
/// - Parameters:
/// - errorType: 에러 타입식 별자입니다.
/// - errorDetails: 에러 상세 내용입니다.
/// - errorCode: 에러 코드 식별자입니다.
///
@objcMembers public class SauceError: NSObject, Codable {
public let errorType: String
public let errorDetails: String
public let errorCode: String
}
kotlin
let sauceClipLib = SauceClipLib()
sauceClipLib.setPreviewAutoPlay(true) // default false
sauceClipLib.load()
Swift
extension MyCustomViewController: SauceClipDelegate {
func sauceClipManager(_ manager: SauceClipViewController, didReceiveErrorMessage errorType: String, errorDetails: String) {
// 여기에서 에러 메시지에 대한 커스텀 처리를 구현합니다.
print("에러 타입: \(errorType), 에러 상세: \(errorDetails)")
}
}
Swift
import SauceClip_iOS
class MyCustomViewController: SauceClipViewController {
override func viewDidLoad() {
super.viewDidLoad()
...config 설정...
let sauceClipLib = SauceClipLib()
sauceClipLib.viewController = self
sauceClipLib.setInit(partnerID: "파트너 아이디", clipID: "클립 아이디", curationID: "큐레이션 아이디") // curationID 옵셔널
...
sauceClipLib.load()
}
}
Swift
let sauceCurationView = SauceCurationLib()
sauceCurationView.delegate = self
...
sauceCurationView.setInit(partnerID: "파트너 아이디", curationID: "큐레이션 아이디")
sauceCurationView.setStageMode(on: true)
sauceCurationView.setPvVisibility(true) // 전시 클립 영상 내 조회 수 노출 여부 default: true
sauceCurationView.setHorizontalPadding(10) // 클립 좌우 여백 default: 0
...
sauceCurationView.load()
}
clip id와 partner id를 통해 플레이어를 설정합니다.
Swift
let sauceClipLib = SauceClipLib()
sauceClipLib.setInit(partnerID: "your partner id", clipID: "클립 아이디")
sauceClipLib.load()
상품 클릭, 공유하기, 장바구니 클릭의 콜백을 Delegate 에서 Json String 대신 데이터 클래스를 넘겨줍니다.
Swift
let config = SauceClipConfig(
isEnterEnabled: true,
isExitEnabled: true,
isMoveProductEnabled: true,
isMoveCartEnabled: true,
isOnShareEnabled: true,
delegate: self
)
configure(with: config)
partner id와 curation id 를 통해 플레이어를 설정합니다.
Swift
let sauceCurationView = SauceCurationLib()
sauceCurationView.setInit(partnerID: "your partner id", curationID: "your curation id")
sauceCurationView.load()
Swift
let sauceCurationView = SauceCurationLib()
sauceCurationView.delegate = self
let config = SauceCurationLib.SauceCurationConfig(
isBroadCastEnabled: true,
delegate: self
)
sauceCurationView.configure(with: config)
상품 클릭시 별도의 구현없이 상품페이지로 이동합니다.
Swfit
sauceCurationView.setProductVC(on: true) // 상품페이지 웹뷰 노출여부
개발 환경을 설정할 수 잇습니다.
Swfit
sauceClipLib.setStageMode(on: true) // true:스테이지 false: 운영
첫 번째 릴리즈 : SauceClip Android SDK의 첫 공식 릴리즈 입니다.
☰
빠른 이동