饂飩コーディング

iOSアプリやら、Unityやら、Cocos2dやらごにょごにょ書いております

UnityでWebView実装してHTMLから戻り値をもらってAndroidMarketを開くその1

とあるスマホ広告のASPはHTMLベースで広告貼付けて
売上げカウントしてもらえますが、Unityでどう実装しようかなぁ?
ってのが今回の記事になります。

概要
UnityにWebViewを実装、広告を表示するHTMLを作成、HTMLから戻り値をもらう(目標URL)
、外部ブラウザで目標URLを開く!
こんな感じなんですが、WebView実装と目標URLを外部ブラウザに渡すってとこが記事のメイン
になります

その1ではWebViewを実装
その2では目標URLをもらって外部ブラウザで開く

という感じで書いてきます。


それではその1いきます!
まずは参考にさせていただいたURLは↓
Unity上でWebViewを表示する | 代打、俺


1、GreeさんのページからWebViewのソースをダウンロードする↓
gree/unity-webview · GitHub
2、展開して/unity-webview-master-2/dist/unity-webview.unitypackageをUnityに
Import Packageします。
f:id:appdeappuappu:20140829155430p:plain
3、空のGameObjectを作成してそこにWebViewを表示するスクリプトを追加しましょう
スクリプトは以下の感じです。

using UnityEngine;
using System.Collections;

public class WebDisplay : MonoBehaviour {
	
	private string url = "http://Your www adress.html";
	//private string url = "http://www.yahoo.com";
	WebViewObject webViewObject;
	void Start() {
		webViewObject = (new GameObject ("WebViewObject")).AddComponent<WebViewObject>();
		webViewObject.Init((msg) => {
			//Application.LoadLevel(msg);//Open on this WebView
			Application.OpenURL(msg);// Open external Brawser with return Message(URL)
		});
		webViewObject.LoadURL(url); //Load URL
		webViewObject.SetVisibility(true); // Show on
		webViewObject.SetMargins(0,0,Screen.width/2,Screen.height - Screen.height/3);//HTML AD size setting
		
	}
}

4、OSXの場合のAndroidManifest.xml は/Applications/Unity/Unity.app/Contents/PlaybackEngines/AndroidPlayerからコピーして編集しましょう。編集したらPluginのAndroidの中に配置しておきましょう
変更する箇所は以下のValueをTrueにしてAndroidとUnityPlayer間でやり取りを可能にする箇所

<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />

追加する箇所は以下のインターネットへのアクセスを可能にする箇所です

<uses-permission android:name="android.permission.INTERNET"/>

この辺りはnendなどの広告を実装する時のManifest編集と同じですね。

編集した結果はこんな感じです↓

<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.unity3d.player"
	android:installLocation="preferExternal"
	android:theme="@android:style/Theme.NoTitleBar"
    android:versionCode="1"
    android:versionName="1.0">
    <supports-screens
        android:smallScreens="true"
        android:normalScreens="true"
        android:largeScreens="true"
        android:xlargeScreens="true"
        android:anyDensity="true"/>
	<uses-permission android:name="android.permission.INTERNET"/>
    <application
		android:icon="@drawable/app_icon"
        android:label="@string/app_name"
        android:debuggable="true">
        <activity android:name="com.unity3d.player.UnityPlayerNativeActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
            <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
        </activity>
	
    </application>
</manifest>

5、これでAndroid実機で実行すると画面上に指定したURLのサイトが表示されているはずです


その2ではHTML側での記述を書いてみます。(内容はほとんどないんですけどね)
UnityでWebView実装してHTMLから戻り値をもらってAndroidMarketを開くその2 - 饂飩コーディング