# iOS向けの実装

# 基本実装

プレイヤーの基本的な機能を使用するために必要な実装を行います。本章内の以降の実装例は、基本実装がされている前提とします。

  1. WebView関連

    WKWebViewインスタンスに必要な設定をしたうえで、プレイヤーを配置するWebページを表示します。

実装例は以下の通りです。

WKWebViewConfiguration *conf = [[WKWebViewConfiguration alloc] init];

// インライン再生を許可する。
[conf setAllowsInlineMediaPlayback: YES];

// WebViewのインスタンスを生成し、配置する。
WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.bounds configuration:conf];
[self.view addSubview:webView];

// デリゲートを設定する。
webView.UIDelegate = self;

// プレイヤーを配置するWebページを表示する。
NSURL *url = [NSURL URLWithString:@"https://host/path/playerpage.html"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];

# リニア広告

WebView上のプレイヤーでリニア広告の再生中に広告のWebページへ遷移するリンクが反応しません。反応させるには、アプリに以下の実装を行います。

  1. [WKWebView createWebViewWithConfiguration:forNavigationAction:windowFeatures:] メソッド

    広告のWebページへ遷移するリンクを開く際にコールされます。第三引数から遷移先のURLを取得し、SafariでWebページを表示します。

実装例は以下の通りです。

- (WKWebView *)webView:(WKWebView *)webView
    createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration
               forNavigationAction:(WKNavigationAction *)navigationAction
                    windowFeatures:(WKWindowFeatures *)windowFeatures {
  // SafariでWebページを開く。
  [[UIApplication sharedApplication] openURL:navigationAction.request.URL
                                     options:@{}
                           completionHandler:nil];
  return nil;
}