YYPOST群发软件 发表于 2026-3-12 09:08:19

苹果脚本实例1剪贴板功能集成


苹果脚本实例1剪贴板功能集成







/**
* ============================================
* 🍎 剪贴板功能集成 - 与H5日志系统结合
* 版本: 2.0.0
* 平台: iOS (AIWROK)
* 功能: 剪贴板读写、H5界面日志集成
* 交流QQ群: 711841924 (群一) / 528816639 (苹果内测群)
* ============================================
*/

/**
* 剪贴板管理器 - 与现有H5日志系统集成
*/
var ClipboardManager = {
    history: [],
    maxHistorySize: 50,
   
    init: function() {
      this.history = [];
      LogManagerH5.success('剪贴板管理器初始化完成');
      return this;
    },
   
    _addToHistory: function(action, content, success) {
      this.history.push({
            timestamp: Date.now(),
            action: action,
            content: content.length > 100 ? content.substring(0, 100) + '...' : content,
            success: success
      });
      
      if (this.history.length > this.maxHistorySize) {
            this.history.shift();
      }
    },
   
    _truncate: function(str, maxLen) {
      if (str.length <= maxLen) return str;
      return str.substring(0, maxLen) + '...';
    },
   
    copy: function(text) {
      if (text === null || text === undefined || String(text).length === 0) {
            LogManagerH5.error('复制失败: 内容为空');
            return false;
      }
      
      var content = String(text);
      
      try {
            clipboard.copyToClipboard(content);
            LogManagerH5.info('&#128203; 复制成功: ' + this._truncate(content, 50));
            this._addToHistory('copy', content, true);
            return true;
      } catch (e) {
            LogManagerH5.error('复制失败: ' + e.message);
            this._addToHistory('copy', content, false);
            return false;
      }
    },
   
    copyPIP: function(text) {
      if (text === null || text === undefined || String(text).length === 0) {
            LogManagerH5.error('PIP复制失败: 内容为空');
            return false;
      }
      
      var content = String(text);
      
      try {
            clipboard.copyToClipboardPIP(content);
            LogManagerH5.info('&#128203; PIP复制成功: ' + this._truncate(content, 50));
            this._addToHistory('copyPIP', content, true);
            return true;
      } catch (e) {
            LogManagerH5.error('PIP复制失败: ' + e.message);
            this._addToHistory('copyPIP', content, false);
            return false;
      }
    },
   
    read: function() {
      try {
            var content = clipboard.readFromClipboard();
            if (content && content.length > 0) {
                LogManagerH5.info('&#128196; 读取成功: ' + this._truncate(content, 50));
                this._addToHistory('read', content, true);
            } else {
                LogManagerH5.warn('剪贴板为空或读取失败');
                this._addToHistory('read', '', false);
            }
            return content || '';
      } catch (e) {
            LogManagerH5.error('读取失败: ' + e.message);
            this._addToHistory('read', '', false);
            return '';
      }
    },
   
    clear: function() {
      try {
            clipboard.copyToClipboard('');
            LogManagerH5.success('剪贴板已清空');
            return true;
      } catch (e) {
            LogManagerH5.error('清空失败: ' + e.message);
            return false;
      }
    },
   
    showHistory: function() {
      LogManagerH5.info('========== 操作历史 ==========');
      
      if (this.history.length === 0) {
            LogManagerH5.info('暂无操作历史');
            return;
      }
      
      for (var i = 0; i < this.history.length; i++) {
            var item = this.history;
            var status = item.success ? '✓' : '✗';
            
            LogManagerH5.info(status + ' ' + item.action + ': ' + item.content);
      }
      
      LogManagerH5.info('========== 历史结束 ==========');
    }
};

/**
* 剪贴板演示函数
*/
function runClipboardDemo() {
    LogManagerH5.success('&#128640; 开始剪贴板功能演示');
   
    // 初始化剪贴板管理器
    ClipboardManager.init();
   
    // 演示1: 基本操作
    LogManagerH5.info('【演示1】基本操作');
    ClipboardManager.copy('Hello, AIWROK! 你好世界!');
    _sleep(300);
    ClipboardManager.read();
    _sleep(300);
   
    // 演示2: 多种数据类型
    LogManagerH5.info('【演示2】多种数据类型');
    var testData = [
      { label: '普通文本', value: '这是一段普通文本内容' },
      { label: '手机号', value: '13800138000' },
      { label: '邮箱', value: 'test@example.com' },
      { label: 'URL', value: 'https://www.aiwork24.com' }
    ];
   
    for (var i = 0; i < testData.length; i++) {
      LogManagerH5.info('复制' + testData.label);
      ClipboardManager.copy(testData.value);
      _sleep(200);
    }
   
    // 演示3: PIP模式
    LogManagerH5.info('【演示3】PIP模式');
    ClipboardManager.copyPIP('PIP模式测试数据 ' + Date.now());
    _sleep(300);
    ClipboardManager.read();
    _sleep(300);
   
    // 演示4: 操作历史
    LogManagerH5.info('【演示4】操作历史');
    ClipboardManager.showHistory();
    _sleep(300);
   
    // 演示5: 错误处理
    LogManagerH5.info('【演示5】错误处理');
    ClipboardManager.copy(''); // 空内容测试
    _sleep(200);
    ClipboardManager.copy(null); // null值测试
    _sleep(200);
   
    // 演示6: 文本框操作
    LogManagerH5.info('【演示6】文本框操作');
    demoTextBoxOperation();
    _sleep(300);
   
    LogManagerH5.success('&#127881; 剪贴板功能演示完成');
}

/**
* 演示文本框操作
* 功能: 粘贴、复制、删除
*/
function demoTextBoxOperation() {
    LogManagerH5.info('========== 文本框操作演示 ==========');
   
    // 步骤1: 先复制一些内容到剪贴板
    LogManagerH5.info('【步骤1】复制内容到剪贴板');
    var demoContent = '这是一段用于演示的文本内容!AIWROK苹果技术';
    ClipboardManager.copy(demoContent);
    _sleep(300);
   
    // 步骤2: 读取剪贴板内容
    LogManagerH5.info('【步骤2】读取剪贴板内容');
    var readContent = ClipboardManager.read();
    LogManagerH5.info('读取到: ' + readContent);
    _sleep(300);
   
    // 步骤3: 模拟粘贴到文本框(通过setDemoText)
    LogManagerH5.info('【步骤3】模拟粘贴到文本框');
    if (typeof setDemoText === 'function') {
      setDemoText(readContent);
    } else {
      LogManagerH5.info('&#128221; 文本框内容: ' + readContent);
    }
    _sleep(300);
   
    // 步骤4: 模拟复制文本框内容
    LogManagerH5.info('【步骤4】复制文本框内容到剪贴板');
    if (typeof setDemoText === 'function') {
      ClipboardManager.copy(readContent + ' - 已复制');
    } else {
      ClipboardManager.copy(readContent);
    }
    _sleep(300);
   
    // 步骤5: 验证复制结果
    LogManagerH5.info('【步骤5】验证复制结果');
    var verifyContent = ClipboardManager.read();
    if (verifyContent.indexOf(readContent) !== -1) {
      LogManagerH5.success('✅ 复制验证成功');
    } else {
      LogManagerH5.warn('⚠️ 复制验证: 内容已更新');
    }
    _sleep(300);
   
    // 步骤6: 清空操作
    LogManagerH5.info('【步骤6】清空文本框');
    ClipboardManager.clear();
    if (typeof setDemoText === 'function') {
      setDemoText('');
    }
    _sleep(300);
   
    // 步骤7: 验证清空结果
    var emptyContent = ClipboardManager.read();
    if (!emptyContent || emptyContent.length === 0) {
      LogManagerH5.success('✅ 清空验证成功');
    }
   
    LogManagerH5.info('========== 文本框操作演示结束 ==========');
}

/**
* 导出函数供其他脚本调用
*/
function getClipboardManager() {
    return ClipboardManager;
}

/**
* 快速测试函数
*/
function testClipboard() {
    LogManagerH5.info('&#128295; 开始剪贴板快速测试');
   
    var testText = '测试文本 ' + Date.now();
    LogManagerH5.info('复制: ' + testText);
    var success = ClipboardManager.copy(testText);
   
    if (success) {
      _sleep(500);
      var content = ClipboardManager.read();
      LogManagerH5.info('读取: ' + content);
      
      if (testText === content) {
            LogManagerH5.success('✅ 复制和读取成功,内容一致');
      } else {
            LogManagerH5.error('❌ 复制和读取失败,内容不一致');
      }
    }
   
    LogManagerH5.info('&#128295; 剪贴板测试完成');
}

/**
* 主函数 - 自动执行演示
*/
function main() {
    // 检查是否在H5环境中
    if (typeof LogManagerH5 === 'undefined') {
      printl('错误: 请先加载LogBridge.js和创建WebView');
      return;
    }
   
    LogManagerH5.info('&#128203; 剪贴板功能集成已加载');
    LogManagerH5.info('使用方法:');
    LogManagerH5.info('1. runClipboardDemo() - 运行完整演示');
    LogManagerH5.info('2. testClipboard() - 运行快速测试');
    LogManagerH5.info('3. getClipboardManager() - 获取管理器实例');
    LogManagerH5.info('4. startAutoDemo() - 开始自动循环演示 (H5)');
    LogManagerH5.info('5. stopAutoDemo() - 停止自动演示 (H5)');
   
    // 自动运行基础演示
    _sleep(1000);
    runClipboardDemo();
   
    // 注意:自动循环演示需要手动点击H5界面的"开始演示"按钮启动
    LogManagerH5.info('&#128161; 提示: 点击H5界面中的"开始演示"按钮启动自动循环演示');
}

main();




页: [1]
查看完整版本: 苹果脚本实例1剪贴板功能集成