モバイル用の色んな機能が使える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付いてないんだろ。