-
Notifications
You must be signed in to change notification settings - Fork 2
WebView 連携ガイド
im-kashi edited this page Dec 2, 2016
·
3 revisions
// AppDelegate.m
#import <Maio/Maio.h>
// 中略
// maio から発行されるメディアIDに差し替えてください。
NSString * const MAIO_MEDIA_ID = @"DemoPublisherMedia";
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 広告の配信テスト設定を行います。アプリをリリースする際にはコメントアウトして下さい。
[Maio setAdTestMode:YES];
// SDK の初期化を開始します。
[Maio startWithMediaId:MAIO_MEDIA_ID delegate:nil];
return YES;
}
MaioWithWebViewSample プロジェクトからMaioWebViewBridge.h
とMaioWebViewBridge.m
をコピーし、マイプロジェクトに追加します。
その後に、下記のコード例のように MaioWebViewBridge をセットアップします。
// ViewController.m
#import "MaioWebViewBridge.h"
// 中略
@implementation ViewController {
MaioWebViewBridge *_bridge;
}
- (void)viewDidLoad {
[super viewDidLoad];
// maio SDK <-> WebView のブリッジオブジェクトを生成
_bridge = [[MaioWebViewBridge alloc] initWithWebView:_webView];
// ブリッジオブジェクトに用意されているデフォルトのデリゲートを使用(任意)
Maio.delegate = _bridge;
_webView.delegate = _bridge;
// WebView に表示する HTML ファイルをロード
NSURL *url = [NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]];
[_webView loadRequest:[NSURLRequest requestWithURL:url]];
}
@end
MaioWithWebViewSample の Resources ディレクトリからmaio-webview-bridge.js
ファイルをコピーし、マイプロジェクトの HTML ファイルのあるディレクトリに追加します。
maio SDK を呼び出したい HTML ファイル側では、head タグ内でmaio-webview-bridge.js
をインポートし、続けて maio SDK のイベントデリゲートを必要に応じて記述します。
<head>
<!-- 中略 -->
<!-- maio SDK ↔ WebView ブリッジ用スクリプト -->
<script src="maio-webview-bridge.js"></script>
<script>
// maio SDK のイベントハンドラを設定。
// 必要なイベントハンドラがあれば、コメントアウトを外して使用して下さい。
Maio.delegate = {
//onInitialize: function () {
// console.log('Maio.delegate.onInitialize');
//},
//onChangeCanShow: function (zoneId, newValue) {
// console.log('Maio.delegate.onChangeCanShow:' + zoneId + ', newValue:' + newValue);
//},
//onStartAd: function (zoneId) {
// console.log('Maio.delegate.onStartAd:' + zoneId);
//},
onFinishAd: function (zoneId, playtime, skipped, rewardParam) {
console.log('Maio.delegate.onFinishAd:' + zoneId + ', playtime:' + playtime + ', skipped:' + skipped + ', rewardParam:' + rewardParam);
// TODO: ユーザへのリワード付与処理
},
//onClickAd: function (zoneId) {
// console.log('Maio.delegate.onClickAd:' + zoneId);
//},
//onCloseAd: function (zoneId) {
// console.log('Maio.delegate.onCloseAd:' + zoneId);
//},
//onFail: function (zoneId, reason) {
// console.log('Maio.delegate.onFail:' + zoneId + ', reason:' + reason);
//},
};
</script>
</head>
トリガーによる動画再生の場合、下記のようなコードで maio SDK を呼び出し動画を再生します。
<script>
// トリガーのクリックイベントを設定
$(function () {
$('#showAdButton').on('click', function () {
// 動画広告が再生可能かチェック
Maio.canShow(function (result) {
if (result) {
// 動画広告を再生
Maio.show();
} else {
// 再生可能な広告が無い
}
});
});
});
</script>