B2B网络软件

标题: 苹果脚本实例1剪贴板功能集成 [打印本页]

作者: YYPOST群发软件    时间: 5 小时前
标题: 苹果脚本实例1剪贴板功能集成

苹果脚本实例1剪贴板功能集成
苹果脚本实例1剪贴板功能集成 B2B网络软件

苹果脚本实例1剪贴板功能集成 B2B网络软件




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

  10. /**
  11. * 剪贴板管理器 - 与现有H5日志系统集成
  12. */
  13. var ClipboardManager = {
  14.     history: [],
  15.     maxHistorySize: 50,
  16.    
  17.     init: function() {
  18.         this.history = [];
  19.         LogManagerH5.success('剪贴板管理器初始化完成');
  20.         return this;
  21.     },
  22.    
  23.     _addToHistory: function(action, content, success) {
  24.         this.history.push({
  25.             timestamp: Date.now(),
  26.             action: action,
  27.             content: content.length > 100 ? content.substring(0, 100) + '...' : content,
  28.             success: success
  29.         });
  30.         
  31.         if (this.history.length > this.maxHistorySize) {
  32.             this.history.shift();
  33.         }
  34.     },
  35.    
  36.     _truncate: function(str, maxLen) {
  37.         if (str.length <= maxLen) return str;
  38.         return str.substring(0, maxLen) + '...';
  39.     },
  40.    
  41.     copy: function(text) {
  42.         if (text === null || text === undefined || String(text).length === 0) {
  43.             LogManagerH5.error('复制失败: 内容为空');
  44.             return false;
  45.         }
  46.         
  47.         var content = String(text);
  48.         
  49.         try {
  50.             clipboard.copyToClipboard(content);
  51.             LogManagerH5.info('&#128203; 复制成功: ' + this._truncate(content, 50));
  52.             this._addToHistory('copy', content, true);
  53.             return true;
  54.         } catch (e) {
  55.             LogManagerH5.error('复制失败: ' + e.message);
  56.             this._addToHistory('copy', content, false);
  57.             return false;
  58.         }
  59.     },
  60.    
  61.     copyPIP: function(text) {
  62.         if (text === null || text === undefined || String(text).length === 0) {
  63.             LogManagerH5.error('PIP复制失败: 内容为空');
  64.             return false;
  65.         }
  66.         
  67.         var content = String(text);
  68.         
  69.         try {
  70.             clipboard.copyToClipboardPIP(content);
  71.             LogManagerH5.info('&#128203; PIP复制成功: ' + this._truncate(content, 50));
  72.             this._addToHistory('copyPIP', content, true);
  73.             return true;
  74.         } catch (e) {
  75.             LogManagerH5.error('PIP复制失败: ' + e.message);
  76.             this._addToHistory('copyPIP', content, false);
  77.             return false;
  78.         }
  79.     },
  80.    
  81.     read: function() {
  82.         try {
  83.             var content = clipboard.readFromClipboard();
  84.             if (content && content.length > 0) {
  85.                 LogManagerH5.info('&#128196; 读取成功: ' + this._truncate(content, 50));
  86.                 this._addToHistory('read', content, true);
  87.             } else {
  88.                 LogManagerH5.warn('剪贴板为空或读取失败');
  89.                 this._addToHistory('read', '', false);
  90.             }
  91.             return content || '';
  92.         } catch (e) {
  93.             LogManagerH5.error('读取失败: ' + e.message);
  94.             this._addToHistory('read', '', false);
  95.             return '';
  96.         }
  97.     },
  98.    
  99.     clear: function() {
  100.         try {
  101.             clipboard.copyToClipboard('');
  102.             LogManagerH5.success('剪贴板已清空');
  103.             return true;
  104.         } catch (e) {
  105.             LogManagerH5.error('清空失败: ' + e.message);
  106.             return false;
  107.         }
  108.     },
  109.    
  110.     showHistory: function() {
  111.         LogManagerH5.info('========== 操作历史 ==========');
  112.         
  113.         if (this.history.length === 0) {
  114.             LogManagerH5.info('暂无操作历史');
  115.             return;
  116.         }
  117.         
  118.         for (var i = 0; i < this.history.length; i++) {
  119.             var item = this.history[i];
  120.             var status = item.success ? '✓' : '✗';
  121.             
  122.             LogManagerH5.info(status + ' ' + item.action + ': ' + item.content);
  123.         }
  124.         
  125.         LogManagerH5.info('========== 历史结束 ==========');
  126.     }
  127. };

  128. /**
  129. * 剪贴板演示函数
  130. */
  131. function runClipboardDemo() {
  132.     LogManagerH5.success('&#128640; 开始剪贴板功能演示');
  133.    
  134.     // 初始化剪贴板管理器
  135.     ClipboardManager.init();
  136.    
  137.     // 演示1: 基本操作
  138.     LogManagerH5.info('【演示1】基本操作');
  139.     ClipboardManager.copy('Hello, AIWROK! 你好世界!');
  140.     _sleep(300);
  141.     ClipboardManager.read();
  142.     _sleep(300);
  143.    
  144.     // 演示2: 多种数据类型
  145.     LogManagerH5.info('【演示2】多种数据类型');
  146.     var testData = [
  147.         { label: '普通文本', value: '这是一段普通文本内容' },
  148.         { label: '手机号', value: '13800138000' },
  149.         { label: '邮箱', value: 'test@example.com' },
  150.         { label: 'URL', value: 'https://www.aiwork24.com' }
  151.     ];
  152.    
  153.     for (var i = 0; i < testData.length; i++) {
  154.         LogManagerH5.info('复制' + testData[i].label);
  155.         ClipboardManager.copy(testData[i].value);
  156.         _sleep(200);
  157.     }
  158.    
  159.     // 演示3: PIP模式
  160.     LogManagerH5.info('【演示3】PIP模式');
  161.     ClipboardManager.copyPIP('PIP模式测试数据 ' + Date.now());
  162.     _sleep(300);
  163.     ClipboardManager.read();
  164.     _sleep(300);
  165.    
  166.     // 演示4: 操作历史
  167.     LogManagerH5.info('【演示4】操作历史');
  168.     ClipboardManager.showHistory();
  169.     _sleep(300);
  170.    
  171.     // 演示5: 错误处理
  172.     LogManagerH5.info('【演示5】错误处理');
  173.     ClipboardManager.copy(''); // 空内容测试
  174.     _sleep(200);
  175.     ClipboardManager.copy(null); // null值测试
  176.     _sleep(200);
  177.    
  178.     // 演示6: 文本框操作
  179.     LogManagerH5.info('【演示6】文本框操作');
  180.     demoTextBoxOperation();
  181.     _sleep(300);
  182.    
  183.     LogManagerH5.success('&#127881; 剪贴板功能演示完成');
  184. }

  185. /**
  186. * 演示文本框操作
  187. * 功能: 粘贴、复制、删除
  188. */
  189. function demoTextBoxOperation() {
  190.     LogManagerH5.info('========== 文本框操作演示 ==========');
  191.    
  192.     // 步骤1: 先复制一些内容到剪贴板
  193.     LogManagerH5.info('【步骤1】复制内容到剪贴板');
  194.     var demoContent = '这是一段用于演示的文本内容!AIWROK苹果技术';
  195.     ClipboardManager.copy(demoContent);
  196.     _sleep(300);
  197.    
  198.     // 步骤2: 读取剪贴板内容
  199.     LogManagerH5.info('【步骤2】读取剪贴板内容');
  200.     var readContent = ClipboardManager.read();
  201.     LogManagerH5.info('读取到: ' + readContent);
  202.     _sleep(300);
  203.    
  204.     // 步骤3: 模拟粘贴到文本框(通过setDemoText)
  205.     LogManagerH5.info('【步骤3】模拟粘贴到文本框');
  206.     if (typeof setDemoText === 'function') {
  207.         setDemoText(readContent);
  208.     } else {
  209.         LogManagerH5.info('&#128221; 文本框内容: ' + readContent);
  210.     }
  211.     _sleep(300);
  212.    
  213.     // 步骤4: 模拟复制文本框内容
  214.     LogManagerH5.info('【步骤4】复制文本框内容到剪贴板');
  215.     if (typeof setDemoText === 'function') {
  216.         ClipboardManager.copy(readContent + ' - 已复制');
  217.     } else {
  218.         ClipboardManager.copy(readContent);
  219.     }
  220.     _sleep(300);
  221.    
  222.     // 步骤5: 验证复制结果
  223.     LogManagerH5.info('【步骤5】验证复制结果');
  224.     var verifyContent = ClipboardManager.read();
  225.     if (verifyContent.indexOf(readContent) !== -1) {
  226.         LogManagerH5.success('✅ 复制验证成功');
  227.     } else {
  228.         LogManagerH5.warn('⚠️ 复制验证: 内容已更新');
  229.     }
  230.     _sleep(300);
  231.    
  232.     // 步骤6: 清空操作
  233.     LogManagerH5.info('【步骤6】清空文本框');
  234.     ClipboardManager.clear();
  235.     if (typeof setDemoText === 'function') {
  236.         setDemoText('');
  237.     }
  238.     _sleep(300);
  239.    
  240.     // 步骤7: 验证清空结果
  241.     var emptyContent = ClipboardManager.read();
  242.     if (!emptyContent || emptyContent.length === 0) {
  243.         LogManagerH5.success('✅ 清空验证成功');
  244.     }
  245.    
  246.     LogManagerH5.info('========== 文本框操作演示结束 ==========');
  247. }

  248. /**
  249. * 导出函数供其他脚本调用
  250. */
  251. function getClipboardManager() {
  252.     return ClipboardManager;
  253. }

  254. /**
  255. * 快速测试函数
  256. */
  257. function testClipboard() {
  258.     LogManagerH5.info('&#128295; 开始剪贴板快速测试');
  259.    
  260.     var testText = '测试文本 ' + Date.now();
  261.     LogManagerH5.info('复制: ' + testText);
  262.     var success = ClipboardManager.copy(testText);
  263.    
  264.     if (success) {
  265.         _sleep(500);
  266.         var content = ClipboardManager.read();
  267.         LogManagerH5.info('读取: ' + content);
  268.         
  269.         if (testText === content) {
  270.             LogManagerH5.success('✅ 复制和读取成功,内容一致');
  271.         } else {
  272.             LogManagerH5.error('❌ 复制和读取失败,内容不一致');
  273.         }
  274.     }
  275.    
  276.     LogManagerH5.info('&#128295; 剪贴板测试完成');
  277. }

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

  303. main();


复制代码







欢迎光临 B2B网络软件 (http://bbs.niubt.cn/) Powered by Discuz! X3.2