Unity3d 复制文字到剪切板及存储图像到相册

出自转载
方法1

https://www.cnblogs.com/lan-yt/p/6934155.html

游戏中里开发分享功能时用到两个小功能:1.复制一个链接到剪切板供在其他应用粘贴分享使用,2.保存一张二维码图像到相册供发送给其他应用用于分享。但是在unity中无法完成,需要分别开发相应的插件。
Android 部分:
使用android studio生成jar包(注意:其中com.ztgame.ztmyseabed 为unity中playersettings里面设置的游戏bundle id),ClipboardTools.java 代码如下

package com.XXXXXXX.base; //建立工程时设置的包名

import android.app.Activity;
import android.content.ClipData;
import android.content.ClipDescription;
import android.content.ClipboardManager;
import android.content.Context;

public class ClipboardTools {
    public static ClipboardManager clipboard = null;
    // 向剪贴板中添加文本
    public void copyTextToClipboard(final Context activity, final String str) throws Exception {
        clipboard = (ClipboardManager) activity.getSystemService(Activity.CLIPBOARD_SERVICE);
        ClipData textCd = ClipData.newPlainText("data", str);
        clipboard.setPrimaryClip(textCd);
    }

    // 从剪贴板中获取文本
    public String getTextFromClipboard() {
        if (clipboard != null && clipboard.hasPrimaryClip()
                && clipboard.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) {
            ClipData cdText = clipboard.getPrimaryClip();
            ClipData.Item item = cdText.getItemAt(0);
            return item.getText().toString();
        }
        return "null";
    }
}

Unity部分:

public void CopyTextToClipboard(string code)
{
#if UNITY_EDITOR
#elif UNITY_IPHONE
#elif UNITY_ANDROID
        AndroidJavaClass playerCls = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject activity = playerCls.GetStatic<AndroidJavaObject>("currentActivity");
        AndroidJavaObject ShareManager = new AndroidJavaObject("com.XXXXXXX.base.ClipboardTools");
        ShareManager.Call("copyTextToClipboard", activity, code);
#endif
}

这边只是引用文章的andriod部分,需要其他内容的可以去查看原文章
关于如何打包aar给Untiy使用的可以参考我之前的
《SDK接入Unity分享总结》

https://blog.csdn.net/qq_22038235/article/details/108322660

方法2:
Unity的开发中,有时候我们会有需求,希望将Unity程序中的字符串保存到系统的剪贴板中,可以在其它的程序中粘贴。不过我们在搜索引擎中搜索到的方法,都是需要去写Obj-c或者Java原生代码的解决方案。
其实Unity本身有个接口可以方便的实现该功能。

UnityEngine.GUIUtility.systemCopyBuffer = "要复制的内容";
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在JavaScript中将文字复制剪切板,可以使用以下方法。首先,选择要复制的文本,这可以通过使用input元素的select()方法来实现。然后,使用document对象的execCommand('copy')方法将选中的文本复制剪切板中。例如,在示例中,我们可以通过以下方式复制文本到剪切板: const inputElement = document.querySelector('#input'); inputElement.select(); document.execCommand('copy'); 这段代码将选中id为"input"的输入框中的文本并复制剪切板中。 另外,还可以使用其他方法实现复制剪切板的功能。例如,可以使用第三方库如clipboard.js来简化复制的过程。在这种情况下,可以通过给按钮添加特定属性,并使用相应的JavaScript代码来实现复制剪切板的功能。例如,在示例中,可以使用以下方式复制文本到剪切板: <span class="btn-copy copy" @click="copyClipboard" data-clipboard-text="这里面是复制的内容,可以使用变量代替">点击复制</span> 通过点击按钮,执行copyClipboard函数来复制指定的文本到剪切板。 总结起来,要在JavaScript中复制文字剪切板,可以使用原生的execCommand('copy')方法或者使用第三方库实现。无论选择哪种方法,都需要先选中文本,然后调用相应的方法来完成复制的动作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [剪贴板操作 Clipboard API 教程](https://blog.csdn.net/liuhao9999/article/details/119318375)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [js实现复制文字剪切板](https://blog.csdn.net/weixin_33923148/article/details/93282090)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值