読者です 読者をやめる 読者になる 読者になる

AK2Sのプログラム日記

フリーランスプログラマのプログラムに関する日記です

【Unity】Webviewの表示

C# Unity

どうもこんばんは!AK2Sです(ヽ´ω`)

今週に入ってからお仕事でAndroid/iOS用にWebviewの実装を行ってました!

Unity5.3↑からかな?iOS9の仕様により少し仕様が変わってましてちょいと苦戦してたので、もしかしたら同じ事で悩んでいる人がいるかもしれないのでまとめておきます(*´ω`*)

 

1.使用ツール/プラグイン


Engine - Unity5.4.0f3

プラグインhttps://github.com/gree/unity-webview (greeから提供されているプラグイン)

OS - OS X EI Capitan version 10.11.5

 

※このプラグインを使用したWebviewをEditorで確認するには、Macでしか動作しません!

 

2.unity-webview使用方法


2-1.unity-webviewのダウンロード


 https://github.com/gree/unity-webviewからzipファイルをダウンロードし解凍を行います。

f:id:AK2S:20161019012112p:plain

解凍が終わったら、次に新しいUnityのプロジェクトを作成し(UnityWebviewSampleとした)解答したフォルダの中に入っている unity-webview.unitypackage をプロジェクトにインストールします。

→ Directory:unity-webview-master/dist/unity-webview.unitypackage 

f:id:AK2S:20161019012251p:plain

f:id:AK2S:20161019012257p:plain

2-2.サンプルの作成


UnityWebviewSample.csとし以下のようなスクリプトを作成する。

f:id:AK2S:20161019012434p:plain

UnityEditorに戻りHierarchyに空のオブジェクトを作成し、先ほどのサンプルスクリプトをアタッチする。

GameView上でWebviewが表示されたら成功です。

f:id:AK2S:20161019012508p:plain

 

3.各プラットフォームの設定


3-1.UnityEditor


Unity5.3よりiOSのセキュリティが強化されたことにより上記の方法のままではEditorで確認できなくなりました。

      f:id:AK2S:20161019012618p:plain

     このように、NSAppTransportSecurity(http://dev.classmethod.jp/smartphone/iphone/ios-9-     intro-ats/)により警告がログに表示されGameViewが白紙で表示されます。

 

3-1-1.NSAppTransportSecurity対処法


 

これを対処するにはInfo.plistファイルの更新が必要となります。

EditorのInfo.plistの格納場所を調べるには、unity-webviewプラグイン内の WebviewObject.cs :: Init 内にログを仕込むことにより確認が出来ます。

f:id:AK2S:20161019012749p:plain

f:id:AK2S:20161019012759p:plain

この場合だと file:///Applications/Unity/Unity.app/Contents/Info.plist がEditorでの対象ファイルとなります。

 

Info.plistに以下を加えてください。(面倒なのでGistを端折る(;´Д`)

---------------------------------------------------------------

<key>NSAppTransportSecurity</key>

<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
---------------------------------------------------------------
これで警告が表示されず、UnityEditor上でもWebviewが表示されるようになります!
 
3-2.iOS
 
3-2-1.NSAppTransportSecurity対処法

Edit → Project Settings → Player から Other Settings を選択します。

      f:id:AK2S:20161019013152p:plain

Allow downloads over HTTPのフラグをTRUEに設定します。(Unity5.2.1以降はデフォルトでTRUEに設定されているそうです。