原博:https://blog.csdn.net/YE_wolf/article/details/76831446


1.PC平台下

1 2 //Window剪切板处理 GUIUtility.systemCopyBuffer = copyText;


2.Android平台下

先添加jar包,放置在Plugins->Android->bin目录下

jar包中代码(反编译出来的):

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 package com.apowo.clipboard;   import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; import android.os.Looper;   public  class  ClipboardTools {    public  static  ClipboardManager clipboard =  null ;      public  static  void  copyTextToClipboard(Context activity, String str) throws Exception    {      if  (Looper.myLooper() ==  null ) {        Looper.prepare();      }      clipboard = (ClipboardManager)activity.getSystemService( "clipboard" );        ClipData textCd = ClipData.newPlainText( "data" , str);      clipboard.setPrimaryClip(textCd);    } }

引入jar包中的内容:

1 2 3 4 5 //Android剪切板处理 AndroidJavaObject androidObject =  new  AndroidJavaObject( "com.apowo.clipboard.ClipboardTools" ); AndroidJavaObject activity =  new  AndroidJavaClass( "com.unity3d.player.UnityPlayer" ).GetStatic( "currentActivity" ); // 复制到剪贴板 androidObject.CallStatic( "copyTextToClipboard" , activity, copyText);


3.IOS平台下

先添加.h和.mm文件,.mm文件是对.h文件中定义方法的具体实现

.h文件:

1 2 3 4 5 6 7 8 9 interface  Clipboard : NSObject   extern  "C" {                   /*  compare the namelist with system processes  */                   void  _copyTextToClipboard( const  char  *textList); }   @end

.mm文件:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #import "Clipboard.h" @implementation Clipboard //将文本复制到IOS剪贴板 - ( void )objc_copyTextToClipboard : (NSString*)text {       UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];       pasteboard. string  = text; } @end   extern  "C"  {       static  Clipboard *iosClipboard;         void  _copyTextToClipboard( const  char  *textList)      {            NSString *text = [NSString stringWithUTF8String: textList] ;            if (iosClipboard == NULL)          {              iosClipboard = [[Clipboard alloc] init];          }            [iosClipboard objc_copyTextToClipboard: text];      }   }

然后,在代码里引用:

引入头DllImport:

1 using  System.Runtime.InteropServices;

引入方法:

1 2 3 4 5 #if UNITY_IPHONE              /* Interface to native implementation */              [DllImport ( "__Internal" )]              private  static  extern  void  _copyTextToClipboard( string  text); #endif

调用方法:

1 _copyTextToClipboard(copyText);


完整代码:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24      public  void  OnButtonClick() {          string  copyText = input.text.ToString();   #if UNITY_IPHONE              /* Interface to native implementation */              [DllImport ( "__Internal" )]              private  static  extern  void  _copyTextToClipboard( string  text); #endif   #if UNITY_STANDALONE_WIN          //Window剪切板处理          GUIUtility.systemCopyBuffer = copyText; #elif UNITY_ANDROID          //Android剪切板处理          AndroidJavaObject androidObject =  new  AndroidJavaObject( "com.apowo.clipboard.ClipboardTools" );          AndroidJavaObject activity =  new  AndroidJavaClass( "com.unity3d.player.UnityPlayer" ).GetStatic( "currentActivity" );          // 复制到剪贴板          androidObject.CallStatic( "copyTextToClipboard" , activity, copyText);   #elif UNITY_IPHONE           _copyTextToClipboard(copyText);   #endif      }
亲测有效

更多相关文章

  1. Android中使用Apache common ftp进行下载文件
  2. Android(安卓)greedao数据库简单的升级
  3. Android关于arm64-v8a,armeabi-v7a,armeabi,x86下的so文件兼容问
  4. 详解Android是如何启动的
  5. 关于android的mk文件的一些见解
  6. Android(安卓)Studio Drawable和Mipmap文件夹的区别
  7. Android之自定义各种控件
  8. Zipalign——Android(安卓)apk优化工具
  9. Android性能优化之一:ViewStub(转)

随机推荐

  1. sharedUserId 区别 process
  2. Android样式——Styles
  3. android:shape的说明
  4. Android 小发现:xml里定义的组件取出始终
  5. java.lang.NoClassDefFoundError: androi
  6. import android包出错(The import android
  7. Error:Unknown host 'jcenter.bintray.co
  8. 在Android中实现多线程同步
  9. Android获取屏幕宽度与高度
  10. android 在TextView中显示EditText,通过B