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文件,具体转换的方法大家可以参照相关的文章,这里就不再重复介绍了。