用户在使用云手机时,可能需要从云机复制文本、表情符号等到真机。云手机 SDK 提供接口支持从云机复制文本、表情符号,并在真机输入框进行粘贴,实现剪贴板数据同步。
云机长按复制功能:

火山引擎云手机 SDK 支持写入云机实例剪贴板数据,以及监听云机实例剪贴板变化事件。同时也支持移动端客户端与云机剪贴板同步快捷功能。
通用场景,SDK 提供操作方法,应用代码控制消息处理逻辑。该场景较为通用,不自动写入到客户端本地剪贴板,方便进行数据处理并且减少兼容性问题。
应用代码监听云机同步过来的剪贴板数据,当云机实例剪贴板内容发生变化时,该回调会获取到云机剪贴板信息,应用代码进行业务逻辑处理。
当客户端期望同步剪贴板内容时,应用代码调用 “发送剪贴板数据” 接口,将客户端的 message 文本发送至云机剪贴板。
该场景在 PC 端设备下,也同时支持键盘快捷键 Ctrl+V 进行数据粘贴至云机(其他数据通道传递,不会改变云机剪贴板)。
设置 enableSyncClipBoard 为 true,主要针对移动端场景,无变更粘贴内容诉求,直接开启云机与客户端设备剪贴板同步。正常移动端长按复制和粘贴功能。
该 enableSyncClipBoard:true 设置在 PC 端设备下,仅支持云机剪贴板数据同步至客户端剪贴板内容,客户端为方便数据处理,不直接开启数据同步。
可以直接用键盘快捷键 Ctrl+V 进行数据粘贴至云机(其他数据通道传递,不会改变云机剪贴板)。
业务可以调用手动同步接口,调用 vePhone.sendClipBoardMessage(message) 将处理后的数据传递至云机剪贴板。
详细信息,参考 接口说明。
//初始化应用 const vePhone = new vePhoneSDK(config); //是否开启剪贴板同步 config.enableSyncClipBoard //客户端是否为 PC 设备 config.isPC //手动发送文本数据至云机剪贴板 vePhone.sendClipBoardMessage(message); //云机实例剪贴板发生变化时的监听回调 vePhone.on('clipboard-message-received');
详细信息,参考 接口说明。
/** * 手动发送剪贴板数据 * * @param data 剪贴板数据 * @throws IllegalArgumentException */ void sendClipBoardMessage(ClipData data); /** * 云机同步过来的剪贴板数据 * @param iClipBoardListener */ void setBoardSyncClipListener(IClipBoardListener iClipBoardListener);
详细信息,参考 接口说明。
/// 剪贴板数据通道 /// - Parameter dataArray: 数据 /// - Notes 调用此接口,会触发“phoneManager:receivedClipBoardMessage:“回调 - (void)sendClipBoardMessage:(NSArray<NSString *> *)dataArray; /// 云机发送“剪贴板数据”回调 /// - Parameters: /// - manager: VePhoneManager 对象 /// - dataArray: 数据 - (void)phoneManager:(VePhoneManager *)manager receivedClipBoardMessage:(NSArray *)dataArray;
https://github.com/volcengine/vePhone/blob/main/Quick%20Start/Web/src/features/clipboard.js
https://github.com/volcengine/vePhone/tree/main/Quick%20Start/iOS
(Web 端)获取剪切板信息,需要先确认是否为安全域名(HTTPS,localhost 不支持 HTTP),部分浏览器限制 HTTP 模式下禁止读取剪切板内容。