API: Shortform

    API: Shortform


    記事の要約

    ShopLiveShortform.play

    ShopLiveShortform.play(requestData: ShopLiveShortformCollectionData?)を活用してショートフォームの詳細画面を再生します。( ShopLiveShortformCollectionDataに関連付けられたプレイリスト)

    • ShopLiveShortformCollectionDataに1つ以上のフィールド値を入力すると、関連するプレイリストが詳細画面で再生されます。

    • ShopLiveShortformCollectionDatanull の場合、すべての動画が詳細画面で再生されます。

    ShopLiveShortformCollectionData

    フィールド

    タイプ

    説明

    shortsId

    String?

    ショートフォームごとのユニーク ID

    shortsSrn

    String?

    ショートフォームに割り当てるリソースを管理するためのグローバルリソース名。これは、ShopLive が内部で使用する値です。

    tags

    [String]?

    関連タグでショートフォームを検索

    tagSearchOperator

    ShopLiveTagSearchOperator?

    タグ検索オプション

    • OR : OR条件で検索

    • AND : AND条件で検索

    brands

    [String]?

    関連ブランドでショートフォームを検索 (ブランド名、ブランドIDをどちらも検索)

    shuffle

    Bool? // default = false

    シャッフル再生 (デフォルト: false)

    referrer

    String?

    詳細画面の参照元情報

    ショートフォームの詳細画面を再生 - すべての動画

    let requestCollectionData = ShopLiveShortformCollectionData()
    ShopLiveShortform.play(requestData: requestCollectionData)

    ショートフォームの詳細画面を再生 - 一覧をクリックして再生

    let requestCollectionData = ShopLiveShortformCollectionData()
    requestCollectionData.shortsId = "{YOUR_SHORTS_ID}"
    requestCollectionData.shortsSrn = "{YOUR_SHORTS_SRN}"
    ShopLiveShortform.play(requestData: requestCollectionData)

    ショートフォームの詳細画面を再生 - 関連タグ一覧をクリックして再生

    let requestCollectionData = ShopLiveShortformCollectionData()
    requestCollectionData.shortsId = "{YOUR_SHORTS_ID}"
    requestCollectionData.shortsSrn = "{YOUR_SHORTS_SRN}"
    requestCollectionData.tags = ["testTag1","testTag2"]
    requestCollectionData.tagSearchOperator = .OR
    ShopLiveShortform.play(requestData: requestCollectionData)

    ショートフォームの詳細画面を再生 - 関連するブランド一覧をクリックして再生

    let requestCollectionData = ShopLiveShortformCollectionData()
    requestCollectionData.shortsId = "{YOUR_SHORTS_ID}"
    requestCollectionData.shortsSrn = "{YOUR_SHORTS_SRN}"
    requestCollectionData.brands = ["brand1","brand2"]
    ShopLiveShortform.play(requestData: requestCollectionData)

    ショートフォームの詳細画面を再生 - 指定したタグを持つ動画を再生

    let requestCollectionData = ShopLiveShortformCollectionData()
    requestCollectionData.tags = ["testTag1","testTag2"]
    requestCollectionData.tagSearchOperator = .OR
    ShopLiveShortform.play(requestData: requestCollectionData)

    ショートフォームの詳細画面を再生 - 指定したブランドを持つ動画を再生

    let requestCollectionData = ShopLiveShortformCollectionData()
    requestCollectionData.brands = ["brand1","brand2"]
    ShopLiveShortform.play(requestData: requestCollectionData)


    ShopLiveShortform.showPreview

    ShopLiveShortform.showPreview(requestData: ShopLiveShortformRelatedData?)を活用してショートフォームのプレビューを再生します。(ShopLiveShortformRelatedDataに関連付けられたプレイリスト)

    • ShopLiveShortformRelatedDataにフィールド値を少なくとも1つ入力すると、関連する動画がプレビュー画面で再生されます。

    ShopLiveShortformRelatedData

    フィールド

    タイプ

    説明

    productId

    String?

    商品のユニーク ID。商品登録時にShopliveが自動的に発行したもの。

    sku

    String?

    商品固有のSKU (商品ID/商品登録時に指定したもの)

    name

    String?

    商品名

    url

    String?

    商品 URL

    tags

    [String]?

    商品タグで検索できる機能

    tagSearchOperator

    ShopLiveTagSearchOperator?

    タグ検索オプション

    • OR: OR条件で検索

    • AND: AND条件で検索

    brands

    [String]?

    ブランドでショートフォームを検索 (ブランド名、ブランドIDどちらも検索)

    shuffle

    Boolean? //default = false

    シャッフル再生 (デフォルト: false)

    referrer

    String?

    プレビュー画面の参照元情報

    ShopLiveShortformPreviewData

    フィールド

    タイプ

    説明

    previewScale

    CGFloat?

    ショートフォームプレビューのサイズを設定する際に使用します。

    previewRadius

    CGFloat?

    ショートフォームプレビューのcornerRadiusを設定する際に使用します。(Default : 10)

    previewPosition

    ShopLiveShortform.PreviewPosition?

    ショートフォームプレビューの初期表示位置を指定する際に使用します。(Default : BottomRight)

    previewEdgeInset

    UIEdgeInset?

    ショートフォームプレビューでプレビューのパディングを設定します。(top, left, right, bottom) (Default : 16pt)

    previewFloatingOffset

    UIEdgeInset?

    ショートフォームプレビューでプレビューが移動できる範囲を設定します。(Default : 0pt)

    isMuted

    Bool?

    ショートフォームプレビューのミュート設定を行う際に使用します。(Default : false)

    isEnabledVolumeKey

    Bool

    ショートフォームプレビューに、デバイスの音量に応じてミュート解除が可能になる機能が追加されました。(Default : false)

    maxCount

    Int?

    ショートフォームプレビューで再生される動画の数を設定する際に使用します。

    useCloseButton

    Bool?

    ショートフォームプレビューの左上にあるXボタンの使用可否を設定する際に使用します。(Default : true)

    useCustomAction

    Bool

    ショートフォームプレビューのクリックイベントを直接定義したい場合に使用します。(Default : false)

    enableSwipeOut

    Bool?

    ショートフォームプレビューを画面外にスワイプして閉じることを許可するかどうかを設定する際に使用します。(Default : true)

    clickEventCallBack

    ( () → () ) ?

    ショートフォームプレビューがクリックされたときに発生するイベントを受け取ることができます。useCustomAction = trueを設定し、そのイベント内で動作を定義することで、プレビューのクリックイベントを直接定義できます。

    ショートフォームの プレビュー再生 - ProductId を指定

    let requestRelatedData = ShopLiveShortformRelatedData()
    requestRelatedData.productId = "{YOUR_PRODUCT_ID}"
    ShopLiveShortform.showPreview(requestData: requestRelatedData)

    ショートフォームの プレビュー再生 - SKU(商品ID)を指定

    let requestRelatedData = ShopLiveShortformRelatedData()
    requestRelatedData.sku = "{YOUR_PRODUCT_SKU}"
    ShopLiveShortform.showPreview(requestData: requestRelatedData)

    ショートフォームの プレビュー再生 - タグを指定して再生

    let requestRelatedData = ShopLiveShortformRelatedData()
    requestRelatedData.tags = ["tag1","tag2"]
    requestRelatedData.tagSearchOperator = .OR
    ShopLiveShortform.showPreview(requestData: requestRelatedData)

    ショートフォームの プレビュー再生 - ブランドを指定して再生

    let requestRelatedData = ShopLiveShortformRelatedData()
    requestRelatedData.brands = ["brand1","brand2"]
    ShopLiveShortform.showPreview(requestData: requestRelatedData)


    ショートフォームの詳細画面 / プレビューの終了

    ShopLiveShortform.close()を活用して現在実行中のショートフォームの詳細画面またはプレビューを閉じます。

    ShopLiveShortform.close()


    詳細画面のボタンを非表示にする

    ShopLiveShortform.setVisibileFullTypeViews(options: ShopLiveShortformVisibleFullTypeData)を活用してショートフォームの詳細画面でボタンを表示するかどうかを設定します。

    ShopLiveShortfromVisibleFullTypeData

    フィールド

    タイプ

    説明

    isLikeButtonVisible

    Bool

    「いいね!」ボタンを隠す(デフォルト: true)

    isCommentButtonVisible

    Bool

    コメントを隠すボタン(デフォルト: true)

    isShareButtonVisible

    Bool

    共有ボタンを隠す(デフォルト: true)

    isBookmarkVisible

    Bool

    ブックマークを隠すボタン(デフォルト: true)

     var option = ShopLiveShortformVisibleFullTypeData()
     option.isLikeButtonVisible = true
     option.isCommentButtonVisible = true
     option.isShareButtonVisible = true
     option.isBookMarkVisible = true
     ShopLiveShortform.setVisibileFullTypeViews(options: option)


    特定のショートフォームIDを使用して、ショートフォームの詳細リストを構成します

    ShopLiveShortform.play(shortformIdsData: ShopLiveShortformIdsData, delegate: ShortsCollectionViewDataSourceRequestDelegate)を使用して、ショートフォームAPIから取得した shortformIdをもとにプレイリストを構成し、順番に再生します。

    ShopLiveShortformIdsData

    フィールド

    タイプ

    説明

    ids

    [String]?

    ショートフォームIDを使用したリスト構成要素(最大30個)

    currentId

    String?

    リストの中で現在フォーカスできる項目

    referrer

    String?

    パスを追跡できる値

    ShortsCollectionViewDataSourcRequestDelegate

    protocol ShortsCollectionViewDataSourceDelegate : AnyObject { 
         func onShortformListPagination(completion : @escaping((ShopLiveShortformIdsMoreData?,Error?) -> ()))
         func onShortformListPaginationError(error : Error)
    }

    onShortformListPagination(completion:_)関数は、表示できるショートフォームIDがなくなったときに呼び出されます。このような状況で、 completion(ShopLiveShortformIdsMoreData)を使用してショートフォームIDを引き続き供給することで、ショートフォームを継続的に表示させます。

    ShopLiveShortformIdsMoreData

    フィールド

    タイプ

    説明

    ids

    [String]?

    ショートフォームIDを使用したリストの構成要素(最大30件)

    hasMore

    Bool?

    ページネーションの可否


    ハイブリッド環境のための接続 API

    ShopLiveShortform.BridgeInterface.connect(_webview: WKWebView)を活用して、ハイブリッド環境でWeb と SDK を接続します。

    ShopLiveShortform.BridgeInterface.connect(webview)

    ShopLiveShortform.ShortsReceiveInterface.setHandler(_handler: ShopLiveShortformReceiveHanderDelegate?)を活用して、ハイブリッド環境では、Web と SDK でメッセージを送受信します。

    ShopLiveShortform.ShortsReceiveInterface.setHandler(self)
    class CustomerViewController : UIViewController,  ShopLiveShortformReceiveHandlerDelegate {
        func handleShare(shareUrl: String) {
            // Do something
        }
        func onError(error: Error) {
            // Do something
        }
        
        func onEvent(command: String, payload: String?) {
            // Do something
        }
        
        func onDidDisAppear() {
            // Do something
        }
        
        func onDidAppear() {
            // Do something
        }
    }


    What's Next