cocos creator3.4版本--(H5和android端)复制内容到剪切板

        使用cocoscreator开发,遇到项目要使用复制文本的功能。在网上找了脚本,发现只能实现H5端的复制到剪切板逻辑,而android端发现不能使用。查了很多资料后,自己实现了android的复制功能。需要和安卓通信。

这里要注意调用的路径为com/cocos/game/AppActivity,调用的函数为JavaCopy

//拷贝文本
	public CopyTextEvent(copyStr: string) {
		if (sys.os == "Android") {
			setTimeout(() => {
				jsb.reflection.callStaticMethod("com/cocos/game/AppActivity", "JavaCopy", "(Ljava/lang/String;)V", copyStr);
			}, 100);
		}
		else {
			const el = document.createElement('textarea');
			el.value = copyStr;

			// Prevent keyboard from showing on mobile
			el.setAttribute('readonly', '');
			//el.style.contain = 'strict';
			el.style.position = 'absolute';
			el.style.left = '-9999px';
			el.style.fontSize = '12pt'; // Prevent zooming on iOS

			const selection = getSelection()!;
			let originalRange;
			if (selection.rangeCount > 0) {
				originalRange = selection.getRangeAt(0);
			}

			document.body.appendChild(el);
			el.select();

			// Explicit selection workaround for iOS
			el.selectionStart = 0;
			el.selectionEnd = copyStr.length;

			let success = false;
			try {
				success = document.execCommand('copy');
			} catch (err) { }

			document.body.removeChild(el);

			if (originalRange) {
				selection.removeAllRanges();
				selection.addRange(originalRange);
			}
		}
	}

代码写好之后就直接构建,然后在AS中导入,注意是导入。

导入之后打开AppActivity,需要在里面依次添加下图中的代码

 最后在AppActivity中添加函数

public static void JavaCopy(final String str){
        app.runOnUiThread(new Runnable(){
            @TargetApi(Build.VERSION_CODES.M)
            @Override
            public void run() {
                ClipboardManager cm = (ClipboardManager)app.getSystemService(Context.CLIPBOARD_SERVICE);
                ClipData clip = ClipData.newPlainText("kk",str);
                cm.setPrimaryClip(clip);
            }
        });
    }

 真机测试没有问题,可以正常复制内容。H5端也可以正常调用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cocos Creator是一款面向游戏开发者的跨平台游戏开发工具,它集成了Cocos2d-x游戏引擎和Cocos Studio编辑器,支持多种平台上的游戏开发,如iOS、Android、Windows等。 消灭星星是一款基于Cocos Creator开发的游戏。在游戏中,玩家需要消除屏幕上的星星,以获得分数。游戏开始时,屏幕上会随机生成一些星星,玩家可以通过点击相连的星星来消除它们。消除的星星越多,得到的分数就越高。玩家可以通过不断消除星星来刷新高分记录,挑战自己的极限。 在消灭星星游戏中,Cocos Creator提供了丰富的功能和工具,为游戏开发者提供了便利。开发者可以使用Cocos Creator的图形界面编辑器来创建游戏场景、导入资源和设置游戏规则等。同时,Cocos Creator还提供了强大的脚本编写功能,开发者可以使用JavaScript或TypeScript编写游戏逻辑,实现游戏中的各种功能。 除了基本的消除星星玩法,Cocos Creator还支持添加特殊道具、关卡设计、人物角色等功能。开发者可以根据自己的需求,自定义游戏的玩法和功能,使游戏更加有趣和有挑战性。 总而言之,Cocos Creator游戏开发工具提供了强大的功能和便捷的开发环境,使开发者可以轻松地开发出各种各样的游戏,包括消灭星星这样的小而精致的休闲游戏。无论是想要学习游戏开发还是实现自己的游戏创意,Cocos Creator都是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值