LoginSignup
5
7

More than 5 years have passed since last update.

UniWebView2使い方 メモ

Last updated at Posted at 2017-03-13

■Webview用アセット
https://www.assetstore.unity3d.com/jp/#!/content/32461

■できる事・体感
 ・ヘッダー・フッターの間にWebView表示化可能
 ・背景画像よりも手前にWebView表示化可能
 ・メモリそんなに食わない感じ
 ・ロードがちょっと長いようにも感じる(ページ次第??)

1.UniWebViewコンポーネントを追加もしくは取得する。

■ゲームオブジェクトから取得

var webView = ゲームオブジェクト.GetComponent<UniWebView>();

■無ければUniWebViewコンポーネントを追加

var webView = ゲームオブジェクト.AddComponent<UniWebView>();

2.指定URLのページをWebView上にロード完了時のイベントと紐づける

webView.OnLoadComplete += (view, success, errorMessage) => {
    if (success) {
        フラグとかメソッドを呼んで完了を知らせる;
    } else {
        エラー処理
    }
};

3.WebViewクローズイベントと紐づける

webView.OnWebViewShouldClose += (view) => 
{
    webView.Hide(fade, (UniWebViewTransitionEdge)transitionEdge, 0.4f, ()=>{
        クローズしたときの処理を書く
    });
    webView.HideToolBar(true);
    return false;
};

4.イベントの紐づけが完了したのでロードする。

_webView.Load(URL文字列);

5.ロードが完了したのでWebViewを表示する。

_webView.Show(fade, (UniWebViewTransitionEdge)transitionEdge, 0.4f, ()=>
{
    表示完了時の処理
});
_webView.ShowToolBar(true);


※キーイベント受け取り(Androidのbackボタン向け)

 ■スクリプト内のコメントによると、下記backButtonEnableをTrueにすると
  Unityの入力イベントとそれに関連するイベント系は受け取れないらしい

  When set true, Unity will not receive the Input.KeyDown or other similar event in Android.

  webView.backButtonEnable = true;

  ・・・だが、イベントを紐づける時にKeycode受け取りイベントと紐づけておくと
  backButtonEnableがTrueでも受け取れた。

webView.OnReceivedKeyCode += (view, keycode) =>
{
    if(keycode == keyCodeBack)
    {
        _webView.Hide(fade, (UniWebViewTransitionEdge)transitionEdge, 0.4f, () =>
        {

        });
        _webView.HideToolBar(true);

    }
};

サイズ指定時の注意事項

ネイティブ側は解像度ではなくポイント(iOSのboundsやframe等を参照)で設定されるので、
RetinaディスプレイであればRetinaの倍率に合わせて
下記を参照に2分の1・3分の1とした値を渡す必要がある
http://qiita.com/tomohisaota/items/f8857d01f328e34fb551

_webView.insets = new UniWebViewEdgeInsets(_insets.top, _insets.left, _insets.bottom, _insets.right);
5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7