Unity3D游戏引擎实现在Android中打开WebView的实例
本文讲述了如何在Unity中调用Android中的WebView组件,实现内部浏览器样式的页面切换。首先打开Eclipse创建一个Android的工程:
UnityTestActivity.java入口Activity,Unity中会调用这个Activity中的方法从而打开网页。
packagecom.xys; importandroid.content.Context; importandroid.content.Intent; importandroid.os.Bundle; importcom.unity3d.player.UnityPlayerActivity; publicclassUnityTestActivityextendsUnityPlayerActivity{ ContextmContext=null; @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); mContext=this; } //Unity中会调用这个方法,从而开打WebView publicvoidStartWebView(Stringstr) { Intentintent=newIntent(mContext,WebViewActivity.class); this.startActivity(intent); } }
WebViewActivity.javaUnity中发出通知打开这个Activity继而打开WebView,没有什么难点大家看看就应当能掌握。
packagecom.xys; importandroid.app.Activity; importandroid.os.Bundle; importandroid.view.View; importandroid.view.View.OnClickListener; importandroid.webkit.WebView; importandroid.widget.Button; publicclassWebViewActivityextendsActivity { privateWebViewwebView; privateButtonclose; @Override protectedvoidonCreate(BundlesavedInstanceState){ //TODOAuto-generatedmethodstub super.onCreate(savedInstanceState); setContentView(R.layout.main); webView=(WebView)findViewById(R.id.webView); webView.loadUrl("http://www.baidu.com/"); webView.getSettings().setJavaScriptEnabled(true); webView.setWebViewClient(newWebViewClient()); close=(Button)findViewById(R.id.button); close.setOnClickListener(newOnClickListener(){ @Override publicvoidonClick(Viewv){ WebViewActivity.this.finish(); } }); } privateclassWebViewClientextendsandroid.webkit.WebViewClient{ @Override publicbooleanshouldOverrideUrlLoading(WebViewview,Stringurl){ //这里实现的目标是在网页中继续点开一个新链接,还是停留在当前程序中 view.loadUrl(url); returnsuper.shouldOverrideUrlLoading(view,url); } } }
然后是main.xml
<?xmlversion="1.0"encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <WebView android:id="@+id/webView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0" /> <Button android:id="@+id/button" android:text="关闭网页" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
最后是AndroidManifest.xml
<?xmlversion="1.0"encoding="utf-8"?> <manifestxmlns:android="http://schemas.android.com/apk/res/android" package="com.xys" android:versionCode="1" android:versionName="1.0"> <uses-sdkandroid:minSdkVersion="10"/> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name"> <activity android:name=".UnityTestActivity" android:label="@string/app_name"> <intent-filter> <actionandroid:name="android.intent.action.MAIN"/> <categoryandroid:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activity android:name=".WebViewActivity"> </activity> </application> <!--连接互联网的权限--> <uses-permissionandroid:name="android.permission.INTERNET"/> </manifest>
OK到这里JAVA代码已经完全写完,然后把所有.JAVA文件打包变成.class文件,具体转换的方法大家可以参照相关的文章,这里就不再重复介绍了。