Unity

【Webview】unity-webview / UniWebView3

unity-webview

https://github.com/gree/unity-webview

シンプルに表示

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SimpleWebView : MonoBehaviour {

    private string url = "https://www.google.co.jp/";
    WebViewObject webViewObject;

    void Start () {
        webViewObject = (new GameObject("WebViewObject")).AddComponent<WebViewObject>();
        webViewObject.Init((msg) => {
            Debug.Log(msg);
        });
        webViewObject.LoadURL(url);
        // 中央に配置
        webViewObject.SetMargins(Screen.width / 4, Screen.height / 4, Screen.width / 4, Screen.height / 4);
        webViewObject.SetVisibility(true);
    }
}

ローカルファイルを表示

Assets/StreamingAssets/以下にHTMLなど必要ファイルを配置

・ファイルの読み込みはwebViewObject.LoadURL("file://${filePath}");に変更する。

string filePath = System.IO.Path.Combine(Application.persistentDataPath, "sample.html");
webViewObject.LoadURL("file://" + filePath.Replace(" ", "%20"));

参考
Unity上でWebViewを開く unity-webview
Unity3Dのgree webviewでローカルHTMLを表示し、JSからUnityのコードを実行してファイル読み書きする

UniWebView3

https://www.assetstore.unity3d.com/jp/?stay#!/content/92605
http://docs.uniwebview.com/api/

シンプルに表示

空のオブジェクトにUniWebView.csをアタッチするだけ。

スクリーンショット 2018-05-08 11.52.54.png

ローカルファイルを表示

・任意のオブジェクトに、デモの中にあるLocalHTMLSceneManager.csをアタッチ。

・fileNameにAssets/StreamingAssets/以下に配置したファイルのパスを記入。

・任意のタイミングでLoadFromFileメソッドを叩く。

LocalHTMLSceneManager.cs
using UnityEngine;

public class LocalHTMLSceneManager : MonoBehaviour {
    public string fileName;
    public string htmlText;
#if UNITY_IOS || UNITY_ANDROID || UNITY_WP8
    public void LoadFromFile() {

        var webView = CreateWebView();
        webView.url = UniWebViewHelper.streamingAssetURLForPath(fileName);
        webView.Load();
        webView.Show();
    }

    public void LoadFromText() {
        var webView = CreateWebView();

        webView.LoadHTMLString(htmlText, null);
        webView.Show();
    }

    UniWebView CreateWebView() {
        var webViewGameObject = GameObject.Find("WebView");
        if (webViewGameObject == null) {
            webViewGameObject = new GameObject("WebView");
        }

        var webView = webViewGameObject.AddComponent<UniWebView>();

        webView.toolBarShow = true;
        return webView;
    }

#else //End of #if UNITY_IOS || UNITY_ANDROID || UNITY_WP8
    void Start() {
        Debug.LogWarning("UniWebView only works on iOS/Android/WP8. Please switch to these platforms in Build Settings.");
    }
#endif
}

参考
UNITYでのWEBVIEW(埋め込みブラウザ)について