回答

3

可以桥接本机iOS剪贴板API并公开setImage方法。要做到这一点,你需要:

  1. 添加本机模块的头文件Clipboard.h

#import "RCTBridgeModule.h" 
 
@interface Clipboard : NSObject <RCTBridgeModule> 
 
@end

  • 添加本机模块实现文件Clipboard.m。我们需要复制base64编码的图像,但可以调整代码使用任何其他图像表示:
  • #import <UIKit/UIKit.h> 
     
    #import <MobileCoreServices/UTCoreTypes.h> 
     
    #import "Clipboard.h" 
     
    
     
    @implementation Clipboard 
     
    
     
    RCT_EXPORT_MODULE(BetterClipboard); // this is how our native module will be named 
     
    
     
    RCT_EXPORT_METHOD(addBase64Image:(NSString *)base64Image) { 
     
        UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; 
     
        [pasteboard setPersistent:YES]; 
     
        
     
        NSData *imageData = [[NSData alloc]initWithBase64EncodedString:base64Image options:NSDataBase64DecodingIgnoreUnknownCharacters]; 
     
    
     
        [pasteboard setImage:[UIImage imageWithData:imageData]]; 
     
    } 
     
    
     
    @end

  • 然后就可以在使用它您的申请作出反应:
  • import { NativeModules } from 'react-native'; 
     
        
     
    NativeModules.BetterClipboard.addBase64Image(base64EncodedImage);

    不幸的是,我不知道如何为Android做同样的事情。