/// ============================================================ /// 闲言APP — 鸿蒙剪贴板桥接工具 /// 创建时间: 2026-05-17 /// 更新时间: 2026-05-17 /// 作用: 在鸿蒙平台上通过原生MethodChannel读取剪贴板, /// 替代Flutter Clipboard.getData以避免READ_PASTEBOARD受限ACL权限 /// 上次更新: 修复_isOhos检测逻辑,使用platform_utils.isOhos /// ============================================================ import 'package:flutter/services.dart'; import 'package:xianyan/core/utils/platform_utils.dart' as pu; class ClipboardBridge { ClipboardBridge._(); static const _channel = MethodChannel('plugins.flutter.io/clipboard_ohos'); static bool get _isOhos => pu.isOhos; static Future getData() async { if (_isOhos) { try { final result = await _channel.invokeMethod('Clipboard.getData'); return result; } on MissingPluginException { // ohos channel not available, fallback } on PlatformException { // permission or other error, fallback } } final data = await Clipboard.getData(Clipboard.kTextPlain); return data?.text; } static Future hasStrings() async { if (_isOhos) { try { final result = await _channel.invokeMethod( 'Clipboard.hasStrings', ); return result ?? false; } on MissingPluginException { // fallback } on PlatformException { // fallback } } final data = await Clipboard.getData(Clipboard.kTextPlain); return data?.text?.isNotEmpty ?? false; } }