Unityの内部ブラウザUniwebview5の使い方メモ

スポンサーリンク
Unity
スポンサーリンク

運営からの通知を表示したりインストール成果報酬のあるアプリ一覧(オファーウォールなど)を表示したい時などの為に、外部のWebページを表示したい事があります。
ですがもし、そこで外部ブラウザに飛ばしてしまうとユーザが放り出された感を受けてしまいます。なので内部ブラウザアセットを導入してみました。
Uniwebview5の動作要件は以下の通りです。

  • Unity 2020.1 or above
  • iOS 9.0 or above
  • Android 5.0 (API Level 21) or above

importした後、シーンにプレハブ等は特に追加で設置不要です。
スクリプトに以下のように記述するだけで基本的な動作はOKでした。

//コンポーネントを追加
var webView = gameObject.AddComponent<UniWebView>();
//全画面は息苦しいので少し小さく表示してみる
webView.Frame = new Rect(25, 25, Screen.width-50, Screen.height-50);
//Androidで戻るボタンを有効に。お好みで
webView.SetBackButtonEnabled(true);
//閉じた時の動作
webView.OnShouldClose += (view) =>
{
    webView = null;
    return true;
};
//urlを読み込み
webView.Load(url);
//ナビボタンとDone(閉じる)ボタンの追加
webView.EmbeddedToolbar.Show();
//ブラウザの表示
webView.Show();

https://docs.uniwebview.com/ その他解説はこのサイトで見れますが、一部の機能がiOSやAndroidなどのプラットフォーム縛りがある事や、Windows版Unity Editorでは動作確認できない事に注意が必要です。
また、AdmobやFirebaseを使っている人は、Preference Panelで”Adds Android Browser”のチェックを外さないとクラス重複エラーが出ます。
他にも、使っているアセットによっては”Adds Kotlin”のチェックなども外す必要があります(逆に、必要なものまで外してしまうと、実行時にブラウザが表示されず、java.lang.NoClassDefFoundError: Failed resolution of: Lkotlin/jvm/internal/Lambda;のようなエラーがデバッガに出ます)。

1 Star2 Stars3 Stars4 Stars5 Stars (まだ投票されていません)
読み込み中...

コメント

広告ブロッカーを無効にしてください。

タイトルとURLをコピーしました