- 印刷する
API - Option
- 印刷する
setShareScheme(_ scheme:, shareDelegate:)
[共有]を選択(タップ)すると、システム共有ポップアップへの転送する scheme
が設定されます。shareDelegate
では、iOSシステム共有ポップアップの代わりにカスタム共有ポップアップを直接実装できます。
setShareScheme(_ scheme: String?, shareDelegate: ShopLivePlayerShareDelegate?)
パラメーター | 説明 |
---|---|
scheme | 共有するスキームまたはURL |
shareDelegate | ShopLiveShareDelegate |
ShopLivePlayerShareData
変数 | 説明 |
---|---|
campaign | ShopLivePlayerShareCampaign - 現在の配信キャンペーンに関する情報 |
url | String - 共有するスキームまたは URL |
ShopLivePlayerShareCampaign
変数 | 説明 |
---|---|
campaignKey | String? - 現在のブロードキャストのcampaignKey |
title | String? - 現在のライブ放送のタイトル |
descriptions | String? - 現在の放送の説明 |
thumbnail | String? - 現在のライブ放送のサムネイル画像 |
サンプルコード
let scheme = "shoplive://live"
let scheme = "https://shoplive.cloud/live"
class ViewController : UIViewController {
func viewDidLoad(){
// iOSシステム共有ポップアップ
ShopLive.setShareScheme(scheme, shareDelegate: nil)
}
}
extension ViewController : ShopLiveShareDelegate {
func handleShare(data : ShopLivePlayerShareData) {
//show share sheet
}
}
setChatViewFont(inputBoxFont:, sendButtonFont:)
チャットフォントを設定し、チャットボタンのフォントを送信します。
setChatViewFont(inputBoxFont: UIFont, sendButtonFont: UIFont)
パラメーター | 説明 |
---|---|
inputBoxFont | チャットフォント |
sendButtonFont | チャット転送ボタンのフォント |
サンプルコード
/**
// チャットフォントの設定
let inputDefaultFont = UIFont.systemFont(ofSize: 14, weight: .regular)
// チャット送信ボタンのフォント設定
let sendButtonDefaultFont = UIFont.systemFont(ofSize: 14, weight: .medium)
*/
let customFont = UIFont(name: "{Custom Font}", size: 16)
// チャットフォントとチャット送信ボタンのフォント変更
ShopLive.setChatViewFont(inputBoxFont: customFont, sendButtonFont: customFont)
setLoadingAnimation(images:)
ビデオの読み込みの進行状況を [画像アニメーション] に設定します。
setLoadingAnimation(images: [UIImage])
パラメーター | 説明 |
---|---|
images | 画像アニメーションに使用する画像 |
サンプルコード
var images: [UIImage] = []
for i in 1...11 {
images.append(.init(named: "loading\(i)")!)
}
ShopLive.setLoadingAnimation(images: images)
setInAppPipConfiguration(config:)
InAppPip 関連のオプションを設定します。
setInAppPipConfiguration(config:) に設定された値は、以前に非推奨になった API によって設定された値よりも優先されます。
パラメーター | 説明 |
---|---|
ShopLiveInAppPipSize | init(pipMaxSize : CGfloat) init(pipFixedHeight : CGFloat) init(pipFixedWidth : CGFLoa |
pipMaxSize は .scaleAspectFill に設定されています。
たとえば、pipMazSizeは100です
横向きモードでは、100 x 100 x (アスペクト比)
ポートレートモードでは、縦100、横100x(アスペクト比)になります。
パラメーター | 説明 |
---|---|
ShopLiveInAppPipConfiguration / | pipSize :ShopLiveInAppPipSize useCloseButton : ブール値 (InAppPip の左上隅に閉じるボタンを表示するかどうかを設定します。デフォルト: false) pipPosition:ShopLive.PipPosition(ショップライブ.ピップポジション) (デフォルトは.bottomRight) enableSwipeOut : ブール値 (アプリ内PIPを画面外に移動して終了するかどうかを設定します、デフォルト:false) pipRadius : CGFloat (アプリ内PIPのcornerRadiusを設定、デフォルト:10) |
Objective-C 環境では、ShopLiveInAppPipConfigurationObjc オブジェクトを使用します。
サンプルコード
//maxSize
let pipSize = ShopLiveInAppPipSize(pipMaxSize : 200)
//fixedHeight
let pipSize = ShopLiveInAppPipSize(pipFixedHeight : 200)
//fixedWidth
let pipSize = ShopLiveInAppPipSize(pipFixedWidth :200)
let inAppPipConfig = ShopLiveInAppPipConfiguration(pipSize: pipSize,
useCloseButton: true,
pipPosition: .bottomLeft,
enableSwipeOut: true,
pipRadius : 10)
ShopLive.setInAppPipConfiguration(config: inAppPipConfig)
getPreviewSize(inAppPipConfiguration: ,videoRatio : )
プレビューのサイズを取得します。
getPreviewSize(inAppPipConfiguration: ShopLiveInAppPipConfiguration, videoRatio: CGSize) -> CGSize
パラメーター | 説明 |
---|---|
inAppPipConfiguration | ShopLiveInAppPipConfiguration |
videoRatio | 動画の比率(例:16:9、9:16) |
addSubViewToPreview(subView: UIView)
Shoplive preview上にお客様のcustomViewを表示します。
※注意
customView を表示する場合は、ShopLiveInAppPipConfiguration(useCloseButton: false) を使用します。
addSubViewToPreview(subView: UIView)
サンプルコード
func setCustomerPreviewCoverView() {
var previewViewCoverView = UIView()
previewViewCoverView.addSubview(someView1)
previewViewCoverView.addSubview(someView2)
NSLayoutConstraint.activate([
someView1.topAnchor.constraint(equalTo: previewViewCoverView.topAnchor),
someView1.trailingAnchor.constraint(equalTo: previewViewCoverView.trailingAnchor),
someView1.widthAnchor.constraint(equalToConstant: 70),
someView1.heightAnchor.constraint(equalToConstant: 30),
someView2.bottomAnchor.constraint(equalTo: previewViewCoverView.bottomAnchor),
someView2.leadingAnchor.constraint(equalTo: previewViewCoverView.leadingAnchor),
someView2.trailingAnchor.constraint(equalTo: previewViewCoverView.trailingAnchor),
someView2.heightAnchor.constraint(equalToConstant: 40)
])
ShopLive.addSubViewToPreview(subView: previewViewCoverView)
}
startPictureInPicture(with: , scale: )
フルスクリーンモードからピクチャーインピクチャーモードに切り替えます。
startPictureInPicture(with position: ShopLive.PipPosition, scale: CGFloat)
startPictureInPicture()
パラメーター | 説明 |
---|---|
position | ピクチャーインピクチャーモード開始時の位置 デフォルト: default |
scale | 0.0 ~ 1.0 の値を入力します。 |
サンプルコード
// 0.4倍(デフォルト)サイズでアプリ内PIPモードに切り替えます。
ShopLive.startPictureInPicture()
// 画面右下から0.1倍サイズでアプリ内PIPを切り替えます。
ShopLive.startPictureInPicture(with: .bottomRight, scale: 0.1)
// 画面左上から0.8倍サイズでアプリ内PIPを切り替えます。
ShopLive.startPictureInPicture(with: .topLeft, scale: 0.8)
サイズ設定の例
大きさ | ピクチャーインピクチャー画面 | 大きさ | ピクチャーインピクチャー画面 | 大きさ | ピクチャーインピクチャー画面 |
---|---|---|---|---|---|
0.1 | 0.4 (デフォルト) | 0.8 |
アプリケーションガイド
stopPictureInPicture()を呼び出します。
ピクチャーインピクチャーモードをフルスクリーンモードに切り替えます。
stopPictureInPicture()
サンプルコード
ShopLive.stopPictureInPicture()
hookNavigation(navigation: @escaping ((URL) -> Void))
商品またはバナーを選択すると、パラメーターに設定した custom
Callback 関数 (パラメーターとして入力した navigation
)を使用してイベントを直接受信します。
hookNavigation(navigation: @escaping ((URL) -> Void))
パラメーター | 説明 |
---|---|
navigation | 商品やバナーを選択するときに呼び出されるブロック - 選択した商品またはバナーのURLを転送します |
サンプルコード
ShopLive.hookNavigation { url in
// url: 選択した商品またはバナーに設定された詳細情報 URL
print("hookNavigation \(url)")
}
アプリケーションガイド
KeepWindowStyleOnReturnFromOsPip オプション
setKeepWindowStyleOnReturnFromOsPip(_keep: Bool)
OS PIPを使用している場合、Shoplive Playerの再生中(PIP、フルスクリーン)に動画がOS PIPに入り、ホーム画面または別のアプリに移動します(バックグラウンド状態に切り替わります)。
アプリに戻ったときに、最後に再生していた状態(PIP、フルスクリーン)に切り替えるか、常に全画面表示にするかを選択できます。
setKeepWindowStyleOnReturnFromOsPip(_ keep: Bool)
パラメーター | 説明 |
---|---|
keep | OSのピクチャーインピクチャー状態からアプリに戻ったときのプレーヤーの再生状態を設定します |
サンプルコード
// OS PIPに切り替わる前の最後の再生中の状態を維持するように設定します。
ShopLive.setKeepWindowStyleOnReturnFromOsPip(true)
// OS PIP状態からアプリに切り替わり、常に全画面表示に切り替わるように設定する
ShopLive.setKeepWindowStyleOnReturnFromOsPip(false)
isKeepWindowStyleOnReturnFromOsPip
現在設定されているマントを返します。
false
:常に全画面表示に切り替えますtrue
:最後の再生状態(PIP、フルスクリーン)に切り替えます(デフォルト)
isKeepWindowStyleOnReturnFromOsPip() -> Bool
サンプルコード
print(ShopLive.isKeepWindowStyleOnReturnFromOsPip())swif
setKeepAspectOnTabletPortrait(_keep:)
タブレットの縦向きモードでのShoplive画面の比率を設定します。true
:アスペクト比を維持(デフォルト)false
:画面いっぱいに表示
setKeepAspectOnTabletPortrait(_ keep: Bool)
パラメーター | 説明 |
---|---|
keep | アスペクト比を維持するかどうかを設定する |
サンプルコード
ShopLive.setKeepAspectOnTabletPortrait(true)
ShopLiveCommonUser
Shoplive を使用している認証済みユーザーです。
ユーザーを認証するためのユーザーの情報を入力します。
var user: ShopLiveCommonUser? { get set }
// ユーザーの性別
public enum ShopliveCommonUserGender : String, CaseIterable {
case female = "f"
case male = "m"
case neutral = "n"
}
public class ShopLiveCommonUser: NSObject {
var userId: String?
var name: String?
var age: Int?
var gender: ShopliveCommonUserGender?
var userScore : Int?
var custom : [String : Any]?
}
アプリケーションガイド
Objective-C 環境では、ShopLiveCommonUserObjc オブジェクトを使用してください。
authToken (認証トークン)
Shoplive 文字列を使用した認証済みユーザーのセキュリティ認証トークン (JWT)。
認証されたユーザーのセキュリティ認証トークン (JWT) 文字列を入力して、ユーザーを認証します。
var authToken: String? { get set }
サンプルコード
let generatedJWT = "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MTA1NzA1dfadsfasfadsfasdfwO"
ShopLive.authToken = generatedJWT
スタイル
これは現在のShoplivePlayerスタイルです。
var style: ShopLive.PresentationStyle { get }
public enum PresentationStyle: Int {
case unknown
case fullScreen
case pip
}
サンプルコード
print(ShopLive.style)
playerモード
これは、現在のShoplivePlayerのmodです。
var playerMode: ShopLive.PlayerMode { get }
public enum PlayerMode: Int {
case play
case preview
case none
}
パラメーター | 説明 |
---|---|
play | Play API で実行されているプレーヤーで動画 (リハーサル、ライブ、リプレイ) を再生する |
preview | プレビューは、プレビューAPIで実行されているプレーヤーで再生されています |
none | プレーヤーが実行されていません |
orientationMode (オリエンテーションモード)
これは、Shoplive Platyerで現在再生されているライブ放送の動画の割合情報です。
var orientationMode: ShopLive.VideoOrientation { get }
public enum VideoOrientation: Int {
case portrait
case landscape
case unknown
}
パラメーター | 説明 |
---|---|
portrait | 縦長比モードで放送(縦長比の例 - 9:16) |
landscape | アスペクト比モードでの放送(16:9の比率の例) |
unknown | モードが不明であるか、ブロードキャストされていないか、ブロードキャスト情報が SDK でまだ更新されていません。 |
playerWindow (プレイヤーウィンドウ)
Shoplive Player が現在表示されている UIWindow のインスタンス。
var playerWindow: ShopLiveWindow? { get }
playerWindow.forceAddSubView(view : UIView)
この関数は、ShopLive フレームワークの上にクライアントのビューを配置する場合に使用します。
一般的なaddSubViewの場合、ShopLiveのポリシーにより、クライアントのビューが追加されない場合があります。
ShopLive.playerWindow?.forceAddSubView({YOUR_VIEW})
viewController
これは、Shoplive Player が現在表示されている UIViewController のインスタンスです。
var viewController: ShopLiveViewController? { get }
サンプルコード
// Shoplive Player上にAlertを表示
let alert = UIAlertController.init(title: "Alert on Player", message: nil, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
ShopLive.viewController?.present(alert, animated: true, completion: nil)
setVisibleStatusBar オプション
Shoplive Playerが全画面表示で再生されているときに、アプリのステータスバーを非表示にすることができます。
inAppPipの場合、ステータスバーが自動的に表示されます。
setVisibleStatusBar(isVisible : Bool)
setVisibleStatusBar(isVisible : Bool)
パラメーター | 説明 |
---|---|
isVisible | ステータスバーを非表示に設定します。
|
サンプルコード
ShopLive.setVisibleStatusBar(isVisible : Bool)
indicatorColor
ローディングインジケーターの色を設定します。
var indicatorColor: UIColor { get set }
サンプルコード
ShopLive.indicatorColor = UIColor.red
isSuccessCampaignJoin() -> Bool
ブロードキャスト エントリが成功したかどうかを確認します。
関連 Callback
: handleReceivedCommand - ON_SUCCESS_CAMPAIGN_JOIN
isSuccessCampaignJoin() -> Bool
サンプルコード
print(ShopLive.isSuccessCampaignJoin())
AutoResumeVideoOnCallEnded オプション
通話が終了した後にビデオに戻ったら、自動再生に設定します。
setAutoResumeVideoOnCallEnded(_ autoResume: Bool)
setAutoResumeVideoOnCallEnded(_ autoResume: Bool)
パラメーター | 説明 |
---|---|
autoResume | 通話が終了すると、ビデオが自動再生されます
|
サンプルコード
ShopLive.setAutoResumeVideoOnCallEnded(true)
isAutoResumeVideoOnCallEnded() -> Bool
現在設定されている値を返します。true
: 通話終了後の自動再生false
: 通話終了後にビデオが停止する
isAutoResumeVideoOnCallEnded() -> Bool
サンプルコード
print(ShopLive.isAutoResumeOnCallEnded())
KeepPlayVideoOnHeadphoneUnplugged オプション
イヤホン(またはヘッドセット)が切断されたら、ビデオを停止せずに自動再生するように設定します。
setKeepPlayVideoOnHeadphoneUnplugged(_ keepPlay: Bool)
イヤホン(またはヘッドセット)が切断されたら、ビデオを停止せずに自動再生するように設定します。
setKeepPlayVideoOnHeadphoneUnplugged(_ keepPlay: Bool)
パラメーター | 説明 |
---|---|
keepPlay | イヤホン(またはヘッドセット)を外すと、ビデオの再生が続行されます
|
サンプルコード
ShopLive.setKeepPlayVideoOnHeadphoneUnplugged(true)
isKeepPlayVideoOnHeadPhoneUnplugged() -> Bool
現在設定されている値を返します。true
:ビデオは再生を続けますfalse
:切断するとビデオが停止します
isKeepPlayVideoOnHeadPhoneUnplugged() -> Bool
‘サンプルコード
print(ShopLive.isKeepPlayVideoOnHeadPhoneUnplugged())
NextActionOnHandleNavigation オプション
ユーザーが商品、お知らせ、バナーなどのリンクを選択すると、Shoplive Playerに次のアクションが設定されます。
public enum ActionType: Int {
case PIP
case KEEP
case CLOSE
}
パラメーター | 説明 |
---|---|
PIP | PIP 変換 |
KEEP | 状態を維持 |
CLOSE | 終了 |
setNextActionOnHandleNavigation(actionType:)
setNextActionOnHandleNavigation(actionType: ActionType)
パラメーター | 説明 |
---|---|
actionType | ユーザーがリンクを選択すると、Shoplive Player が次に動作します |
サンプルコード
// PIP切り替え
ShopLive.setNextActionOnHandleNavigation(.PIP)
// 状態を維持する
ShopLive.setNextActionOnHandleNavigation(.KEEP)
// 終了
ShopLive.setNextActionOnHandleNavigation(.CLOSE)
getNextActionTypeOnHandleNavigation() -> ActionType
Shoplive Player では、ユーザーがリンクを選択したときに設定される次のアクションに注目してください。
getNextActionTypeOnHandleNavigation() -> ActionType
サンプルコード
print(ShopLive.getNextActionTypeOnHandleNavigation())
アプリケーションガイド
setPictureInPictureFloatingOffset(offset: UIEdgeInsets) -> Bool
アプリ内PIPで、PIPが移動できる領域を設定します。
無効な値が設定されている場合は、切り上げられ、 false
デフォルト値が受け入れられます。
@objc static func setPictureInPictureFloatingOffset(offset: UIEdgeInsets) -> Bool
パラメーター | 説明 |
---|---|
offset | 上、左、右、下のオフセット値を設定します。 |
サンプルコード
// left: 20, right: 30, bottom: 10, top: 10でオフセット値を設定します。
let offset: UIEdgeInsets = .init(top: 10, left: 20, bottom: 10, right: 30)
ShopLive.setPictureInPictureFloatingOffset(offset: offset)
setUsingLocalStorage(_ use: Bool)
ローカルストレージの保存機能を使用するかどうかを設定します。
@objc static func setUsingLocalStorage(_ use: Bool)
パラメーター | 説明 |
---|---|
use | ローカルストレージ機能を使用することは可能ですか?
|
サンプルコード
// ローカルストレージの保存機能を使用するように設定
ShopLive.setUsingLocalStorage(true)
// ローカルストレージの保存機能を使用しないように設定
ShopLive.setUsingLocalStorage(false)
setAppVersion(_ appVersion: String)
アプリのバージョンを設定します。
API を呼び出さなくても、既定でアプリのバージョンが読み取られ、サーバーに渡されます。
この機能を使用する場合は、Shoplive の担当者にお問い合わせください。
@objc static func setAppVersion(_ appVersion: String
パラメーター | 説明 |
---|---|
appVersion | アプリのバージョン |
サンプルコード
let appVersion: String = “1.0.0”
ShopLive.setAppVersion(appVersion)
setMixWithOthers(_ isMixAudio: Bool)
外部音声で放送を視聴できます。
@objc static func setMixWithOthers(_ isMixAudio: Bool)
パラメーター | 説明 |
---|---|
isMixAudio | true:外部オーディオでライブ放送を視聴、false:外部オーディオの再生時にプレーヤーが一時停止します(デフォルト:true) |
サンプルコード
// 外部オーディオが再生されるとPlayerは一時停止します。
ShopLive.setMixWithOthers(false)
// 外部オーディオと一緒に放送を視聴する
ShopLive.setMixWithOthers(true)
useCloseButton(_ use: Bool)
閉じるボタンは、プレビューモードとピクチャーインピクチャーモードでアクティブにできます。
@objc static func useCloseButton(_ use: Bool)
パラメーター | 説明 |
---|---|
use | true :プレビューとピクチャーインピクチャーモードで閉じるボタンを使用 |
サンプルコード
// PreviewとPIPモードで閉じるボタンは使用しない。
ShopLive.useCloseButton(false)
// PreviewとPIPモードで閉じるボタンを使用します。
ShopLive.useCloseButton(true)
addParameter(key: String, value: String)
プレーヤーを起動する前に、カスタムデータを追加できます。
@objc static func addParameter(key: String, value: String)
パラメーター | 説明 |
---|---|
key | キーを適用するための追加のカスタムパラメータ |
value | カスタムパラメータの値 |
サンプルコード
ShopLive.addParameter(key: "key", value: "value")
removeParameter(key: String, value: String)
プレーヤーを起動する前に、addParameterで追加したカスタムデータを削除します。
@objc static func removeParameter(key: String)
パラメーター | 説明 |
---|---|
key | 削除するカスタムパラメータキー |
サンプルコード
ShopLive.removeParameter(key: "key)
setUtmSource(utmSource: String)
UTM Sourceを追跡できます。データは データインサイトにあります。
func setUtmSource(utmSource: String?)
パラメーター | 説明 |
---|---|
utmSource | ライブへの流入のリファラ情報 |
サンプルコード
ShopLive.setUtmSource(“{utm_source}”)
setUtmMedium(utmMedium: 文字列)
UTM Mediumを追跡できます。データは データインサイトにあります。
func setUtmMedium(utmMedium: String?)
パラメーター | 説明 |
---|---|
utmMedium | 流入がどのように発生したかがわかります。Googleは、流入につながったマーケティング手法を参照するためにmediumパラメータを設定することを推奨しています。(例:CPC、バナー、メール、ブログ、SNSなど) |
サンプルコード
ShopLive.setUtmMedium(“{utm_medium}”)
setUtmCampaign(utmCampaign: 文字列)
UTM Campaignを追跡できます。データは データインサイトにあります。
func setUtmCampaign(utmCampaign: String?)
パラメーター | 説明 |
---|---|
utmCampaign | どの広告キャンペーンが流入を生み出したかがわかります。これは、キャンペーン名、キャンペーン期間、キャンペーンコンテンツに分けることができます。 |
サンプルコード
ShopLive.setUtmCampaign(“{utm_campaign}”)
setUtmContent(utmContent: 文字列)
UTM Contentを追跡できます。データは データインサイトにあります。
func setUtmContent(utmContent: String?)
パラメーター | 説明 |
---|---|
utmContent | 流入がどのような投稿/広告によって引き起こされたかがわかります。これは、キャンペーンパラメータの細分化としてよく使用されます。 |
サンプルコード
ShopLive.setUtmContent(“{utm_content}”)