当前位置: 首页 > news >正文

cocosCreator获取手机剪切板内容

最近游戏中需要加上复制粘贴的功能,这个时候就涉及到安卓原生层的东西。步骤如下:
公开文章地址,见个人博客

复制功能

ts代码

调用代码,在需要复制的地方调用即可。

     public static copyToClipBoard(str) {if (sys.platform == sys.Platform.ANDROID) {PlatformMgr.callNativeFn("copyToClipboard", str);}}
    static async callNativeFn(funcName: string, jsonMsg?: string): Promise<{ msg: string, isSucc: boolean }> {if (sys.platform != sys.Platform.ANDROID) // TODO: web 暂时只支持 Android 调用returnlet fn = PlatformMgr.Ins._platformIns[funcName]if (typeof (fn) == "function") { // 支持重写方法return await fn(funcName, jsonMsg)} else {return await PlatformMgr.Ins._platformIns.callNativeFn(funcName, jsonMsg)}}
import { NativeMgr } from "../../module/native/NativeMgr";export class PlatformBase {// 最终调用 natvie 接口async callNativeFn(funcName: string, jsonMsg?: string) {return new Promise<{ msg: string, isSucc: boolean }>((resolve) => {NativeMgr.Ins.callNativeFunc((msg: string, isSucc: boolean) => {resolve({ msg: msg, isSucc: isSucc })}, funcName, jsonMsg)})}
}

java代码

放在你自己的逻辑中,放在AppActivity.java中即可。前面需要import相关的库文件

import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;

调用代码:

public static void copyToClipboard(String textToCopy) {// 获取剪贴板管理器ClipboardManager clipboardManager = (ClipboardManager) getActivity().getApplicationContext().getSystemService(Context.CLIPBOARD_SERVICE);// 创建 ClipData 对象ClipData clipData = ClipData.newPlainText("Copied Text", textToCopy);// 将 ClipData 设置到剪贴板clipboardManager.setPrimaryClip(clipData);try {JSONObject jsonobj = new JSONObject();jsonobj.put("type", "copyText");jsonobj.put("code", "1");Log.d("copyToClipboard",  jsonobj.toString());String str = String.format("NativeAndroid.javaCallback(\'%s\')", jsonobj.toString());
//                    CocosJavascriptJavaBridge.evalString(str);callJsGlobalFunc(str);} catch (Exception e) {}}

获取剪切板内容

ts代码

     public static copyToClipBoard(str) {if (sys.platform == sys.Platform.ANDROID) {let android = new AndroidNative();android.getText("getText");}}
export class AndroidNative implements INativeCaller {getText(funcName: string, jsonMsg: string = "{}") {   let getText = native.reflection.callStaticMethod(this._activityName, funcName, "()Ljava/lang/String;");console.log("剪切板内容")}
}

java代码

    public static String getText(){ClipboardManager clipboard = (ClipboardManager) getActivity().getApplicationContext().getSystemService(Context.CLIPBOARD_SERVICE);ClipData clip = clipboard.getPrimaryClip();if (clip != null && clip.getItemCount() > 0) {Log.d("剪切板内容 = ",clip.getItemAt(0).coerceToText(getActivity().getApplicationContext()).toString());return clip.getItemAt(0).coerceToText(getActivity().getApplicationContext()).toString();}return null;}

相关文章:

  • 数据分类以及常见的数据格式
  • Simple-STNDT使用Transformer进行Spike信号的表征学习(三)训练与评估
  • React@16.x(34)动画(中)
  • 有那么点道理。
  • 计算机硬件的组成与功能详解
  • 【数据结构】红黑树实现详解
  • 【面试】i++与++i的区别
  • SpringBoot配置第三方专业缓存技术jetcache远程缓存方案和本地缓存方案
  • 前端开发之计算机网络模型认识
  • C#基于SkiaSharp实现印章管理(1)
  • oracle12c dataguard搭建及切换
  • React组件卸载的几种情况
  • Nikto一键扫描Web服务器(KALI工具系列三十)
  • 【break】大头哥哥做题
  • vue登陆密码加密,java后端解密
  • 2017-09-12 前端日报
  • 230. Kth Smallest Element in a BST
  • css选择器
  • Electron入门介绍
  • Mithril.js 入门介绍
  • Python 反序列化安全问题(二)
  • Vue 2.3、2.4 知识点小结
  • Vue.js 移动端适配之 vw 解决方案
  • vue中实现单选
  • 关于使用markdown的方法(引自CSDN教程)
  • 好的网址,关于.net 4.0 ,vs 2010
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 排序算法之--选择排序
  • 前嗅ForeSpider采集配置界面介绍
  • 深度学习中的信息论知识详解
  • 微信开放平台全网发布【失败】的几点排查方法
  • 一道面试题引发的“血案”
  • 一个SAP顾问在美国的这些年
  • kubernetes资源对象--ingress
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • #{}和${}的区别?
  • #pragma once与条件编译
  • #单片机(TB6600驱动42步进电机)
  • $.ajax()方法详解
  • (1)无线电失控保护(二)
  • (13)Hive调优——动态分区导致的小文件问题
  • (C#)获取字符编码的类
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (分布式缓存)Redis分片集群
  • **CI中自动类加载的用法总结
  • *2 echo、printf、mkdir命令的应用
  • .NET CORE 第一节 创建基本的 asp.net core
  • .NET Core 成都线下面基会拉开序幕
  • .NET Micro Framework初体验
  • .NET MVC之AOP
  • .NET程序员迈向卓越的必由之路
  • .net生成的类,跨工程调用显示注释
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?