Unity3D游戏引擎实现在Android中打开WebView的实例
程序员文章站
2023-02-02 12:27:47
本文讲述了如何在unity中调用android中的webview组件,实现内部浏览器样式的页面切换。首先打开eclipse创建一个android的工程:
unitytes...
本文讲述了如何在unity中调用android中的webview组件,实现内部浏览器样式的页面切换。首先打开eclipse创建一个android的工程:
unitytestactivity.java 入口activity ,unity中会调用这个activity中的方法从而打开网页。
package com.xys; import android.content.context; import android.content.intent; import android.os.bundle; import com.unity3d.player.unityplayeractivity; public class unitytestactivity extends unityplayeractivity { context mcontext = null; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); mcontext = this; } //unity中会调用这个方法,从而开打webview public void startwebview(string str) { intent intent = new intent(mcontext,webviewactivity.class); this.startactivity(intent); } }
webviewactivity.java unity中发出通知打开这个activity 继而打开webview,没有什么难点大家看看就应当能掌握。
package com.xys; import android.app.activity; import android.os.bundle; import android.view.view; import android.view.view.onclicklistener; import android.webkit.webview; import android.widget.button; public class webviewactivity extends activity { private webview webview; private button close; @override protected void oncreate(bundle savedinstancestate) { // todo auto-generated method stub 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(new webviewclient()); close = (button) findviewbyid(r.id.button); close.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { webviewactivity.this.finish(); } }); } private class webviewclient extends android.webkit.webviewclient { @override public boolean shouldoverrideurlloading(webview view, string url) { //这里实现的目标是在网页中继续点开一个新链接,还是停留在当前程序中 view.loadurl(url); return super.shouldoverrideurlloading(view, url); } } }
然后是main.xml
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns: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
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.xys" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="10" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".unitytestactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <activity android:name=".webviewactivity"> </activity> </application> <!-- 连接互联网的权限 --> <uses-permission android:name="android.permission.internet" /> </manifest>
ok 到这里java代码已经完全写完,然后把所有.java文件打包变成.class文件,具体转换的方法大家可以参照相关的文章,这里就不再重复介绍了。