モバイル用の色んな機能が使えるCross Platform Native Plugins – Ultra Packというアセットを使ってみた。
今回はWebViewだけ。
機能一覧
• アドレスブック
• レシートバリデーション付きの課金 (アップルストア、Google Playストア)
• メディアライブラリー(イメージ、ビデオ、Youtube)
• ネットワーク接続
• 通知システム(ローカルおよびプッシュ)
• シェアリング(FB、Twitter、メール、メッセージング、WhatsApp)
• Twitter SDK
• UIダイアログ(アラート、プロンプト)
• Rate My App(私のアプリを評価してください)
• WebView
WebView
最初何をすればいいのかサッパリわからなくて、結構時間かかりました。WebViewって実機じゃないと動かないから、いちいちビルドして試したんだよね。USBでWindowsPCとスマホを繋げばリアルタイムでいけるっぽいけど。
まずは以下のPrefabをHierarchyにドラッグ。
Assets/Standard Assets/VoxelBusters/NativePlugins/Prefab/WebView.prefab
そして以下のようなコードを書く。webViewには上でドラッグしてきたPrefabを指定。
using System.Collections; using System.Collections.Generic; using UnityEngine; using VoxelBusters.NativePlugins; public class Sample : MonoBehaviour { public WebView webView; private void Start () { // フルスクリーン表示 webView.SetFullScreenFrame(); // Webサイト読み込み webView.LoadRequest("http://www.google.com"); } }
これだけで表示できました。簡単。
使いそうなプロパティはこの辺かな。
// 表示サイズ指定 webView.Frame = new Rect(0, 0, 600, 600); // 読み込み終わったら即表示 webView.AutoShowOnLoadFinish = true; // 閉じるボタン追加 webView.ControlType = eWebviewControlType.CLOSE_BUTTON;
使わない機能を除去する
Unityエディタからチェックボックスで選べます。
Window > VoxelBusters > NativePlugins > Open NPSettings > Application Settings
全機能入れるとビルドサイズが2.5MBくらい大きくなるけど、ここで使うのだけ選択しておけばサイズを減らせます。
まとめ
サンプルコードあるし、リファレンスサイトもあるから何とかなるね。
しかしなんでUnity本体にはWebView付いてないんだろ。