はじめに
今回はgree/unity-webview
というgree
がOSS
として公開しているWebView
をUnityアプリ上で表示するプラグインを紹介します。
unity-webview is a plugin for Unity 5 that overlays WebView components on Unity view.
// DeepL翻訳
unity-webviewはUnityビューにWebViewコンポーネントをオーバーレイするUnity 5用のプラグインです。
対応プラットフォーム
- Android
- iOS
- Unity Web Player
- Mac
ただしWindowsはサポートしていないので注意してください。
WebViewとは
そもそもWebView
とはなんなのかと思われる方もいるかと思うので補足しますが、アプリに組み込まれるウェブコンテンツを表示するための機能のことを指します。
Webview or embedded browser control is a web browser that is embedded in a native app to display web content.
// DeepL翻訳
ウェブビューまたは埋め込みブラウザコントロールは、ウェブコンテンツを表示するためにネイティブアプリに埋め込まれるウェブブラウザです。
インストール
Package Managner
のAdd package from git URL...
に以下のURLを打ち込むことでインストールできます。
https://github.com/gree/unity-webview.git?path=/dist/package
manifest.json
に以下を追加してください。
{ "dependencies": { ... "net.gree.unity-webview": "https://github.com/gree/unity-webview.git?path=/dist/package", ... } }
使い方
まずは必要最低限な使い方を見ていきます。
private void Start() { var webViewObject = new GameObject("WebViewObject").AddComponent<WebViewObject>(); // 初期化 webViewObject.Init( // NOTE: iOSでUIWebViewではなくWKWebViewを利用する(現在はほぼ必須な設定項目だと思ってもらえれば) enableWKWebView: true ); // URLを読み込みWebViewを表示する webViewObject.SetVisibility(true); webViewObject.LoadURL("https://www.google.co.jp/"); }
WebViewObject
コンポーネントに対してInit
とした後にSetVisibillity + LoadURL
を実行するだけでWebView
を正しく表示できます。
Marginを設定する
// left, top, right, bottom webViewObject.SetMargins(0, 0, 0, 100);
BASIC認証をする
webViewObject.SetBasicAuthInfo("Username", "Password");
補足ですがURL
にBASIC
認証を埋め込んだりもできますが、Safariといったブラウザでは動作しないのでこちらのメソッドを利用するようにしてください。
http://ユーザ名:パスワード@example.com
ブラウザのページを進める
if (webViewObject.CanGoForward())
{
webViewObject.GoForward();
}
ブラウザのページを戻す
if (webViewObject.CanGoBack())
{
webViewObject.GoBack();
}
エラーのログをコンソールに出力する
webViewObject.Init( // NOTE: iOSでUIWebViewではなくWKWebViewを利用する(現在はほぼ必須な設定項目だと思ってもらえれば) enableWKWebView: true, // エラーの時はログを出力するようにしておく err: x => Debug.LogError($"ERR: {x}"), httpErr: x => Debug.LogError("HTTPERR: {x}") );
注意点
Project Settings > Player > Other Settings > Configuration > Internet Access
をRequire
にしないとWebViewが正しく動作しないケースがあるので注意してください。