首页 > 系统 > Android > 正文

Unity3D游戏引擎实现在Android中打开WebView的实例

2019-10-24 20:36:34
字体:
来源:转载
供稿:网友

这篇文章主要介绍了Unity3D游戏引擎在Android中打开WebView的实例,需要的朋友可以参考下

本文讲述了如何在Unity中调用Android中的WebView组件,实现内部浏览器样式的页面切换。首先打开Eclipse创建一个Android的工程:

UnityTestActivity.java 入口Activity ,Unity中会调用这个Activity中的方法从而打开网页。

 

 
  1. package com.xys;  
  2. import android.content.Context;  
  3. import android.content.Intent;  
  4. import android.os.Bundle;  
  5. import com.unity3d.player.UnityPlayerActivity;  
  6. public class UnityTestActivity extends UnityPlayerActivity {  
  7. Context mContext = null;  
  8. @Override 
  9. public void onCreate(Bundle savedInstanceState) {  
  10. super.onCreate(savedInstanceState);  
  11. mContext = this;  
  12. }  
  13. //Unity中会调用这个方法,从而开打WebView  
  14. public void StartWebView(String str)  
  15. {  
  16. Intent intent = new Intent(mContext,WebViewActivity.class);  
  17. this.startActivity(intent);  
  18. }  

WebViewActivity.java Unity中发出通知打开这个Activity 继而打开WebView,没有什么难点大家看看就应当能掌握。

 

 
  1. package com.xys;  
  2. import android.app.Activity;  
  3. import android.os.Bundle;  
  4. import android.view.View;  
  5. import android.view.View.OnClickListener;  
  6. import android.webkit.WebView;  
  7. import android.widget.Button;  
  8. public class WebViewActivity extends Activity  
  9. {  
  10. private WebView webView;  
  11. private Button close;  
  12. @Override 
  13. protected void onCreate(Bundle savedInstanceState) {  
  14. // TODO Auto-generated method stub  
  15. super.onCreate(savedInstanceState);  
  16. setContentView(R.layout.main);  
  17. webView = (WebView) findViewById(R.id.webView);  
  18. webView.loadUrl("http://www.baidu.com/");  
  19. webView.getSettings().setJavaScriptEnabled(true);  
  20. webView.setWebViewClient(new WebViewClient());  
  21. close = (Button) findViewById(R.id.button);  
  22. close.setOnClickListener(new OnClickListener() {  
  23. @Override 
  24. public void onClick(View v) {  
  25. WebViewActivity.this.finish();  
  26. }  
  27. });  
  28. }  
  29. private class WebViewClient extends android.webkit.WebViewClient {  
  30. @Override 
  31. public boolean shouldOverrideUrlLoading(WebView view, String url) {  
  32. //这里实现的目标是在网页中继续点开一个新链接,还是停留在当前程序中  
  33. view.loadUrl(url);  
  34. return super.shouldOverrideUrlLoading(view, url);  
  35. }  
  36. }  

然后是main.xml

 

 
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3. android:layout_width="fill_parent" 
  4. android:layout_height="fill_parent" 
  5. android:orientation="vertical" >  
  6. <WebView 
  7. android:id="@+id/webView" 
  8. android:layout_width="fill_parent" 
  9. android:layout_height="wrap_content" 
  10. android:layout_weight="1.0" 
  11. />  
  12. <Button 
  13. android:id="@+id/button" 
  14. android:text="关闭网页" 
  15. android:layout_width="wrap_content" 
  16. android:layout_height="wrap_content" 
  17. />  
  18. </LinearLayout> 

最后是AndroidManifest.xml

 

 
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
  3. package="com.xys" 
  4. android:versionCode="1" 
  5. android:versionName="1.0" >  
  6. <uses-sdk android:minSdkVersion="10" />  
  7. <application 
  8. android:icon="@drawable/ic_launcher" 
  9. android:label="@string/app_name" >  
  10. <activity 
  11. android:name=".UnityTestActivity" 
  12. android:label="@string/app_name" >  
  13. <intent-filter>  
  14. <action android:name="android.intent.action.MAIN" />  
  15. <category android:name="android.intent.category.LAUNCHER" />  
  16. </intent-filter>  
  17. </activity>  
  18. <activity 
  19. android:name=".WebViewActivity">  
  20. </activity>  
  21. </application>  
  22. <!-- 连接互联网的权限 --> 
  23. <uses-permission android:name="android.permission.INTERNET" />  
  24. </manifest> 

OK 到这里JAVA代码已经完全写完,然后把所有.JAVA文件打包变成.class文件,具体转换的方法大家可以参照相关的文章,这里就不再重复介绍了。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表