cocos2dx 嵌入Android webview

实现Android全屏WebView和遮罩效果的Cocos2dx实战项目 Cocos2dx是一个开源的游戏框架,它允许开发者用C++来创建游戏和交互式应用。通过Cocos2dx,开发者可以轻松地在多个平台上发布他们的应用,包括iOS、Android、Windows、MacOS和Web。该框架提供了大量的内置功能,比如精灵、动画、粒子系统、场景管理、音频播放、物理引擎和网络功能等,这些功能极大地简化了游戏开发流程。 阅读详情

在2dx界面中嵌套加载显示一个webview,最简单的用法就是直接在一个WebView控件中显示,外加设置了一些简单的属性,可以自定义这个webview的大小。

java代码如下:

public class bxWebview extends Cocos2dxActivity {

	static WebView m_webView;
	static bxWebview majiang = null;
	static FrameLayout m_webLayout;
	static LinearLayout topLayout;

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// 全局变量保存this
		majiang = this;
		// 初始化一个空的布局
		m_webLayout = new FrameLayout(this); 
		m_webLayout.setPadding(30, 50, 30, 10);
		addContentView(m_webLayout, new LayoutParams(LayoutParams.FILL_PARENT,
				LayoutParams.FILL_PARENT
		// LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT
				));
	}

	public Cocos2dxGLSurfaceView onCreateView() {
		Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSurfaceView(this);
		// TestCpp should create stencil buffer
		glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8);
		return glSurfaceView;
	}


	static {
		System.loadLibrary("cocos2dcpp");
	}

	public static void openWebView() {
		majiang.runOnUiThread(new Runnable() {// 在主线程里添加别的控件
			@SuppressLint("SetJavaScriptEnabled")
			public void run() {
				// 初始化webView
				m_webView = new WebView(majiang);
				// 设置webView能够执行javascript脚本
				m_webView.getSettings().setJavaScriptEnabled(true);
				// 设置可以支持缩放
				m_webView.getSettings().setSupportZoom(true);// 设置出现缩放工具
				m_webView.getSettings().setBuiltInZoomControls(true);
				// 载入URL
				m_webView.loadUrl("http://www.baidu.com");
				// 使页面获得焦点
				m_webView.requestFocus();
				// 如果页面中链接,如果希望点击链接继续在当前browser中响应
				m_webView.setWebViewClient(new WebViewClient() {
					public boolean shouldOverrideUrlLoading(WebView view,
							String url) {
						if (url.indexOf("tel:") < 0) {
							view.loadUrl(url);
						}
						return true;
					}
				});
				topLayout = new LinearLayout(majiang);
				topLayout.setOrientation(LinearLayout.VERTICAL);


				topLayout.addView(m_webView);
				// 再把线性布局加入到主布局
				m_webLayout.addView(topLayout);
			}
		});
	}

	public static void removeWebView() {
		m_webLayout.removeView(topLayout);
		topLayout.destroyDrawingCache();


		topLayout.removeView(m_webView);
		m_webView.destroy();
	}

	public boolean onKeyDown(int keyCoder, KeyEvent event) {
		if (m_webView.canGoBack() && keyCoder == KeyEvent.KEYCODE_BACK) {
			m_webView.goBack();
		} else {
			removeWebView();
		}
		return false;
	}
}

c++中调用方法:

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)  
	JniMethodInfo minfo;
	bool isHave = JniHelper::getStaticMethodInfo(minfo,"com/xxx/xxx/bxWebview","openWebView","()V");  
	if (isHave)  
	{ 
		CCLog("exists----------");
		minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID);  
	}else{
		CCLog("do not exist----------");
	} 
#endif

头文件包含:

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include <jni.h>
#include "platform/android/jni/JniHelper.h"
#include <android/log.h>
#endif

效果图:




cocos-win32下实现WebView网页内嵌 实现在win32下Web内嵌功能,基于windows com组件DWebBrowserEvents2,可实现前进、后退、刷新、JS交互等功能 立即下载

相关推荐

cocos2d-x嵌入webview

cocos2d-x嵌入webview VS2010 cocos2d-x v2.2.0 包含win32,android代码,以及生成的so和apk。

在cocos2dx界面中嵌入android的webview。(c++篇,包含c++和java的交互)

首先,新建一个cocos2dx项目。然后在 proj.android/src/org/cocos2dx/lib/Cocos2dxActivity.java 这个java文件里面开始书写代码。由于我只实现一个打开和关闭webview的功能,所以就直接写在这个java文件里面,不过为了方便,也可以重新建立一个java文件,来写关于这个webview的东西。首先我们来引入一些库。import andr

a704020443的博客 2183

【Proteus】NE555纯硬件实现LED呼吸灯效果,附源文件,效果展示

本设计通过NE555与三极管的巧妙配合,仅用基础元件实现了呼吸灯效果。核心在于利用RC积分电路将PWM信号转换为控制电压,并通过负反馈动态调节占空比。Proteus仿真验证了方案的可行性,读者可进一步优化参数或扩展功能,探索更多硬件设计可能性。

2201_75797484的博客 2983

cocos2d-x 中使用的android控件详细说明之webview

cocos2d-x 中使用的androi m_kWebView = new WebView(m_pkActInstance);     //生成一个webview (m_pkActInstance)是在oncrete的时候指定的实例,这里是this                m_kWebLayout.addView(m_kWebView);              

zhaohuappc的专栏 1305

开源LocalAI本地人工智能安装教程

LocalAI是一款能在本地运行的人工智能应用,它兼容了OpenAI API规范,它可以在普通的电脑运行,不需要GPU,也不需要联网,音频转录

2301_78652552的博客 3615

Silvaco TCAD | 从PIN到APD:高性能光电探测器的仿真设计与优化

本文详细介绍了使用Silvaco TCAD进行光电探测器仿真设计与优化的全过程,从基础的PIN结构到高性能APD的实现。通过实战案例和代码示例,展示了如何优化器件参数、实现雪崩效应以及进行高级仿真分析,帮助工程师提升光电探测器的量子效率和响应速度。

weixin_29218509的博客 427

【玩转cocos2d-x之三十三】游戏嵌入Webview网页

手游《我叫MT》一开始会弹出一个游戏公告,有玩过的肯定都蛮熟悉的,这就是webview,就是一个网页。由于webview和平台相关,这里就介绍下cocos2d-x如何嵌入andorid的webview控件,在cocos2d-x中显示网页。 1.Jni Jni这里我就不再多说了。可用参考wikipedia,或者微信飞机大战的移植篇。通过Jni,可以实现在cocos2d-x中调用Android的API,当然也可以进行传值。 2.Android使用webview 直接上代码。主要是处理布局和webview

偶尔e网事 2万+

实战拆解:RAG vs Agent在金融风控中的性能对比

2024年上半年我帮某华东地区城商行做零售交易反欺诈系统升级时,技术团队曾发生过一次激烈争论:一派认为应该优先上RAG(检索增强生成)方案,成本低、落地快、合规性好;另一派坚持要上Agent(智能体)方案,推理能力强、能应对复杂新型欺诈。最终我们做了完整的AB测试,结论是两者没有绝对的优劣,只有场景适配的差异:RAG适合高并发、低时延的实时风控场景,Agent适合低并发、高准确率要求的事后核查/大额审批场景,两者结合的 hybrid 方案能覆盖95%以上的风控需求。本文我会结合真实项目的测试数据,从核心概念

AI天才研究院 251

cocos2dx IOS 使用UIWebView来加载网页

// // WebViewIOS.h // evilcard // // Created by keltonxian on 6/18/14. // // #ifndef __WEBVIEWIOS_H__ #define __WEBVIEWIOS_H__ #import class WebViewIOS; @interface SocialView : UIView { UI

kelton的专栏 3775

YOLO26改进策略【YOLO和Mamba】| CVPR 2025:EfficientViM 压缩隐藏状态空间进行通道混合、单头设计减少内存操作,提升目标检测效率与精度

本文记录的是利用模块优化的目标检测网络模型。EfficientViM Block(基于隐藏状态混合器的状态空间对偶性模块) 的设计旨在,提升特征提取效率,同时兼顾全局依赖捕捉与局部细节保留。本文将深入研究的原理,并将其应用到中,通过重构特征提取流程、减少内存绑定操作、融合多阶段特征,增强模型在资源受限环境下的检测性能与速度。EfficientViM: Efficient Vision Mamba with Hidden State Mixer based State Space DualityEfficie

Limiiiing的博客 401

嵌入式面经篇八——进程&线程

记录一些招聘公司在招聘嵌入式软件岗位时的一些问题,此文为第八篇。进程上文:是指进程由用户态切换到内核态时需要保存用户态时CPU寄存器中的值,进程状态以及堆栈上的内容。即保存当前进程的状态,以便再次执行该进程时,能够恢复切换时的状态,继续执行。进程下文:是指切换到内核态后执行的程序,即进程运行在内核空间的部分。中断上文:硬件通过中断触发信号,导致内核调用中断处理程序,进入内核空间。这个过程中,硬件的一些变量和参数也要传递给内核,内核通过这些参数进行中断处理。

明天你好的博客 1854

cocoscreator使用webview控件

cocoscreator使用webview控件 webview.url = "https://blog.youkuaiyun.com" // 这里设置百度的页面会报错

springleaf2的专栏 5320

基于Python的雪球网投资组合数据爬取与分析实战:从入门到精通

在当今数字化投资时代,数据已成为投资者最重要的资产之一。雪球网作为中国领先的投资社交平台,汇聚了大量优质的投资组合数据,这些数据对于量化投资研究和个人投资决策具有重要价值。本文将详细介绍如何使用Python最新技术栈构建一个高效、稳定的雪球网投资组合爬虫,并深入分析获取的数据。投资组合持仓明细及变动历史投资收益率曲线与风险指标投资者操作策略与调仓频率热门行业与个股关注度。

2201_76125261的博客 920

【COCOS2DX-ANDROID-游戏开发之二三】 界面中嵌入Android的WebView

(转载请注明原文地址:http://blog.youkuaiyun.com/guggy/article/details/10435157) 在Cocos2dxActivity.java中, (1) 增加函数onCreateLayout, [java] view plaincopy     public LinearLayout onC

Teng's world 4775

YOLOv8 智能交通违章检测 - 压线/越线行驶检测详解

本文提出了一种基于YOLOv8的智能交通违章检测方案,重点解决车辆压线/越线行驶的识别问题。系统采用多技术融合方案:YOLOv8检测车辆、ByteTrack跟踪轨迹、传统或深度学习方法识别车道线,并通过几何计算判断车辆是否违规跨越实线。文章详细介绍了技术难点(如车道线分类、透视变形处理)、判定流程、系统架构和核心代码实现,包括车道线检测、违章逻辑判断和可视化模块。同时指出了现有方案的局限性,建议通过引入逆透视变换和专用车道线分割模型来提升准确率。该纯视觉方案具有低成本、易部署的特点,适用于智能交通监控场景。

u010117029的博客 177

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

android cocos2d 游戏,在cocos2dx2.2.6游戏中嵌入Android的WebView,并做屏幕适配

public void openWebView() {// 创建并加载m_layout = new LinearLayout(SimpleGame.this);WebActivity.this.addContentView(m_layout, new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));m_we...

weixin_29037455的博客 252

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

在cocos2d-x界面中嵌入Android的WebView

在Cocos2dxActivity.java中, (1) 增加函数onCreateLayout, [java]view plaincopy publicLinearLayoutonCreateLayout(Cocos2dxGLSurfaceViewsurfaceView){ LinearLayoutlayout=newLinearL...

473687880 308

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

cocos2d-x在iOS/Android双平台上嵌入WebView

注:文章首次发布于个人博客,现将技术文章转移至此。 http://blog.go3k.org/cocos2dx-add-webview/ 游戏中的帮助和游戏公告,可以通过嵌入显示WebView的方案来实现,通过编辑HTML来修改、更新公告的样式和内容都很方便。 iOS平台嵌入 iOS平台上的嵌入很顺利,网上有现成的教程加代码,关键是做好OC与C++代码混编的封装。  参考如下链

omegayy的专栏 1万+

cocos2d 嵌入网页_cocos2d-x游戏嵌入Webview网页

手游《我叫MT》一开始会弹出一个游戏公告,有玩过的肯定都蛮熟悉的,这就是webview,就是一个网页。由于webview和平台相关,这里就介绍下cocos2d-x如何嵌入andorid的webview控件,在cocos2d-x中显示网页。1.JniJni这里我就不再多说了。可用参考wikipedia,或者微信飞机大战的移植篇。通过Jni,可以实现在cocos2d-x中调用Android的API,当...

weixin_42122986的博客 632

cocos2d-x在Android双平台上嵌入WebView

这几天想要在cocos2d中嵌入web网页,找了各种方法后最正确的做法好像只有通过jni从cocos2d-x的c++代码调用java函数,由于对java和jni都知之甚少,走了不少弯路,也犯了不少错误,现将我的过程和需要注意的地方做个记录,以方便后面使用的朋友查阅。 本文参照了Vincent Chou的个人博客文章:cocos2d-x在iOS/Android双平台上嵌入Web

luxiaoyu_sdc的专栏 6278

cocos2dx C++ 嵌入一个网页

auto webview = cocos2d::experimental::ui::WebView::create();     Size *_size = new Size(visibleSize.width-100, visibleSize.height-100);     webview->setContentSize(*_size);     webview->s

TX98337的博客 2124

cocos2d 嵌入网页_【玩转cocos2d-x之三十三】游戏嵌入Webview网页

手游《我叫MT》一开始会弹出一个游戏公告,有玩过的肯定都蛮熟悉的,这就是webview,就是一个网页。由于webview和平台相关,这里就介绍下cocos2d-x如何嵌入andorid的webview控件,在cocos2d-x中显示网页。1.JniJni这里我就不再多说了。可用参考wikipedia,或者微信飞机大战的移植篇。通过Jni,可以实现在cocos2d-x中调用Android的API,当...

weixin_34015347的博客 556

cocos2dx添加android的webView cocos2d-x在iOS Android添加WebView

iOS平台上的嵌入很顺利,网上有现成的教程加代码,参考如下链接中的实现方式:http://www.cocos2dev.com/?p=248 Android平台嵌入 需求:点击一个按钮打开Android WebView 1. 通过JNI从cocos2d-x的C++代码调用java代码。 这是Android实现WebView嵌入的前提条件,详细JNI教程:http://www.himigame....

weixin_30633949的博客 139

cocos2d android ios,cocos2d-x在iOS/Android双平台上嵌入WebView

@H_502_0@注:文章首次发布于个人博客,现将技术文章转移至此。http://blog.go3k.org/cocos2dx-add-webview/游戏中的帮助和游戏公告,可以通过嵌入显示WebView的方案来实现,通过编辑HTML来修改、更新公告的样式和内容都很方便。iOS平台嵌入iOS平台上的嵌入很顺利,网上有现成的教程加代码,关键是做好OC与C++代码混编的封装。参考如下链接中的实现方式...

weixin_39948111的博客 298
上一篇: cocos2dx Android获取Mac地址
下一篇: 游戏中添加google内购
火-狐-狸
博客等级 码龄15年 13粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值