 | |  |  | H5案例自动化看广告撸金币系统
- // 创建 WebView 实例
- var web = new WebView();
- // 显示 WebView 界面
- web.show();
- // 加载本地 HTML 文件
- var htmlPath = project.getCodePath() + "h5.html";
- web.loadFile(htmlPath);
- // 定义 H5 中调用的函数
- function test(arg) {
- printl("我被 H5 调用了,参数是: " + arg);
- }
- // 定义返回桌面的函数,供H5页面调用
- function returnToHome() {
- printl("执行返回桌面操作");
- hid.home();
- }
- // 打印加载信息
- printl("WebView 已创建并加载本地文件: " + htmlPath);
复制代码- <!DOCTYPE html>
- <!--
- 🍎交流QQ群:711841924(群一 - 苹果内测群)
- 🍎交流QQ群:528816639
- -->
- <html lang="zh-CN">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
- <meta name="apple-mobile-web-app-capable" content="yes">
- <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
- <title>💰 金币收割机 Pro - 自动化撸金币神器</title>
- <style>
- /* ============================================
- * 金币收割机 Pro - 样式定义
- * 功能: 自动化看广告撸金币系统
- * ============================================ */
- * { margin: 0; padding: 0; box-sizing: border-box; }
-
- :root {
- --gold: #FFD700;
- --gold-dark: #FFA500;
- --money-green: #00C851;
- --vip-purple: #9C27B0;
- --bg-dark: #1a1a2e;
- --bg-card: #16213e;
- --text-primary: #ffffff;
- --text-secondary: #a0a0a0;
- }
- body {
- font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', sans-serif;
- background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f0f23 100%);
- color: var(--text-primary);
- min-height: 100vh;
- overflow-x: hidden;
- }
- /* 金币飘落动画背景 */
- .coins-rain {
- position: fixed;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- pointer-events: none;
- z-index: 0;
- overflow: hidden;
- }
- .coin {
- position: absolute;
- font-size: 20px;
- animation: coinFall linear infinite;
- opacity: 0.3;
- }
- @keyframes coinFall {
- 0% { transform: translateY(-100px) rotate(0deg); opacity: 0; }
- 10% { opacity: 0.3; }
- 90% { opacity: 0.3; }
- 100% { transform: translateY(100vh) rotate(360deg); opacity: 0; }
- }
- /* QQ群信息标题栏 */
- .qq-group-bar {
- background: linear-gradient(90deg, #FF6B6B 0%, #FF8E53 50%, #FFD700 100%);
- padding: 10px 16px;
- text-align: center;
- position: relative;
- z-index: 20;
- box-shadow: 0 2px 10px rgba(0,0,0,0.3);
- }
- .qq-group-text {
- font-size: 13px;
- font-weight: 700;
- color: #fff;
- text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
- letter-spacing: 0.5px;
- }
- .app-container {
- position: relative;
- z-index: 10;
- max-width: 480px;
- margin: 0 auto;
- padding: 16px;
- }
- /* 顶部金币统计 */
- .gold-header {
- background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%);
- border-radius: 20px;
- padding: 24px;
- text-align: center;
- margin-bottom: 20px;
- box-shadow: 0 10px 40px rgba(255, 215, 0, 0.3);
- position: relative;
- overflow: hidden;
- }
- .gold-header::before {
- content: '💰';
- position: absolute;
- font-size: 120px;
- opacity: 0.1;
- right: -20px;
- top: -20px;
- }
- .today-earnings {
- font-size: 14px;
- color: rgba(0,0,0,0.6);
- margin-bottom: 8px;
- font-weight: 600;
- }
- .gold-amount {
- font-size: 48px;
- font-weight: 900;
- color: #000;
- text-shadow: 2px 2px 4px rgba(255,255,255,0.3);
- display: flex;
- align-items: center;
- justify-content: center;
- gap: 8px;
- }
- .gold-amount::before {
- content: '💎';
- font-size: 32px;
- }
- .gold-convert {
- font-size: 13px;
- color: rgba(0,0,0,0.7);
- margin-top: 8px;
- background: rgba(255,255,255,0.3);
- display: inline-block;
- padding: 4px 12px;
- border-radius: 20px;
- }
- /* 统计卡片 */
- .stats-row {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- gap: 12px;
- margin-bottom: 20px;
- }
- .stat-box {
- background: var(--bg-card);
- border-radius: 16px;
- padding: 16px 8px;
- text-align: center;
- border: 1px solid rgba(255,215,0,0.1);
- }
- .stat-icon {
- font-size: 24px;
- margin-bottom: 4px;
- }
- .stat-value {
- font-size: 20px;
- font-weight: 800;
- color: var(--gold);
- }
- .stat-label {
- font-size: 11px;
- color: var(--text-secondary);
- margin-top: 2px;
- }
- /* 平台列表 */
- .platforms-section {
- margin-bottom: 20px;
- }
- .section-title {
- font-size: 16px;
- font-weight: 700;
- margin-bottom: 12px;
- display: flex;
- align-items: center;
- gap: 8px;
- }
- .platform-card {
- background: var(--bg-card);
- border-radius: 16px;
- padding: 16px;
- margin-bottom: 12px;
- border: 1px solid rgba(255,255,255,0.05);
- display: flex;
- align-items: center;
- gap: 12px;
- transition: all 0.3s ease;
- }
- .platform-card:hover {
- border-color: rgba(255,215,0,0.3);
- transform: translateX(4px);
- }
- .platform-icon {
- width: 48px;
- height: 48px;
- border-radius: 12px;
- display: flex;
- align-items: center;
- justify-content: center;
- font-size: 28px;
- flex-shrink: 0;
- }
- .platform-icon.douyin { background: linear-gradient(135deg, #000 0%, #333 100%); }
- .platform-icon.kuaishou { background: linear-gradient(135deg, #FF6B6B 0%, #FF8E53 100%); }
- .platform-icon.baidu { background: linear-gradient(135deg, #2932E1 0%, #4B5CFF 100%); }
- .platform-icon.fanqie { background: linear-gradient(135deg, #FF6B6B 0%, #FF8E8E 100%); }
- .platform-info {
- flex: 1;
- }
- .platform-name {
- font-size: 15px;
- font-weight: 700;
- margin-bottom: 4px;
- }
- .platform-status {
- font-size: 12px;
- color: var(--text-secondary);
- }
- .platform-status.ready { color: var(--money-green); }
- .platform-status.running { color: var(--gold); }
- .platform-status.cooldown { color: #FF6B6B; }
- .platform-earnings {
- text-align: right;
- }
- .earnings-amount {
- font-size: 18px;
- font-weight: 800;
- color: var(--gold);
- }
- .earnings-label {
- font-size: 10px;
- color: var(--text-secondary);
- }
- /* 开关 */
- .switch {
- position: relative;
- width: 50px;
- height: 26px;
- flex-shrink: 0;
- }
- .switch input {
- opacity: 0;
- width: 0;
- height: 0;
- }
- .slider {
- position: absolute;
- cursor: pointer;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- background-color: #333;
- transition: .4s;
- border-radius: 26px;
- }
- .slider:before {
- position: absolute;
- content: "";
- height: 20px;
- width: 20px;
- left: 3px;
- bottom: 3px;
- background-color: white;
- transition: .4s;
- border-radius: 50%;
- }
- input:checked + .slider {
- background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%);
- }
- input:checked + .slider:before {
- transform: translateX(24px);
- }
- /* 控制按钮 */
- .control-panel {
- background: var(--bg-card);
- border-radius: 20px;
- padding: 20px;
- margin-bottom: 20px;
- }
- .main-btn {
- width: 100%;
- padding: 18px;
- border: none;
- border-radius: 16px;
- font-size: 18px;
- font-weight: 800;
- cursor: pointer;
- transition: all 0.3s ease;
- display: flex;
- align-items: center;
- justify-content: center;
- gap: 8px;
- margin-bottom: 12px;
- }
- .btn-start {
- background: linear-gradient(135deg, #00C851 0%, #00E676 100%);
- color: white;
- box-shadow: 0 8px 32px rgba(0, 200, 81, 0.4);
- }
- .btn-start:hover {
- transform: translateY(-2px);
- box-shadow: 0 12px 40px rgba(0, 200, 81, 0.5);
- }
- .btn-stop {
- background: linear-gradient(135deg, #FF6B6B 0%, #FF8E8E 100%);
- color: white;
- box-shadow: 0 8px 32px rgba(255, 107, 107, 0.4);
- display: none;
- }
- .btn-stop.active {
- display: flex;
- }
- .btn-start.hidden {
- display: none;
- }
- /* 模式选择 */
- .mode-selector {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- gap: 8px;
- }
- .mode-btn {
- padding: 12px 8px;
- border: 2px solid rgba(255,255,255,0.1);
- background: transparent;
- border-radius: 12px;
- color: var(--text-secondary);
- font-size: 12px;
- font-weight: 600;
- cursor: pointer;
- transition: all 0.3s ease;
- }
- .mode-btn.active {
- border-color: var(--gold);
- color: var(--gold);
- background: rgba(255, 215, 0, 0.1);
- }
- /* 日志区域 */
- .log-section {
- background: var(--bg-card);
- border-radius: 16px;
- padding: 16px;
- }
- .log-header {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-bottom: 12px;
- }
- .log-container {
- background: rgba(0,0,0,0.3);
- border-radius: 12px;
- padding: 12px;
- max-height: 200px;
- overflow-y: auto;
- font-family: 'SF Mono', monospace;
- font-size: 11px;
- line-height: 1.8;
- }
- .log-entry {
- padding: 4px 0;
- border-bottom: 1px solid rgba(255,255,255,0.05);
- display: flex;
- gap: 8px;
- }
- .log-time { color: #666; flex-shrink: 0; }
- .log-success { color: var(--money-green); }
- .log-gold { color: var(--gold); }
- .log-error { color: #FF6B6B; }
- /* 动画 */
- @keyframes pulse-gold {
- 0%, 100% { box-shadow: 0 0 20px rgba(255, 215, 0, 0.4); }
- 50% { box-shadow: 0 0 40px rgba(255, 215, 0, 0.6); }
- }
- .earning {
- animation: pulse-gold 2s infinite;
- }
- /* Toast */
- .toast {
- position: fixed;
- bottom: 100px;
- left: 50%;
- transform: translateX(-50%) translateY(100px);
- background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%);
- color: #000;
- padding: 16px 32px;
- border-radius: 50px;
- font-weight: 700;
- opacity: 0;
- transition: all 0.3s ease;
- z-index: 9999;
- box-shadow: 0 8px 32px rgba(255, 215, 0, 0.4);
- }
- .toast.show {
- opacity: 1;
- transform: translateX(-50%) translateY(0);
- }
- /* 进度条 */
- .progress-bar {
- height: 6px;
- background: rgba(255,255,255,0.1);
- border-radius: 3px;
- overflow: hidden;
- margin-top: 8px;
- }
- .progress-fill {
- height: 100%;
- background: linear-gradient(90deg, #FFD700 0%, #FFA500 100%);
- border-radius: 3px;
- transition: width 0.5s ease;
- }
- </style>
- </head>
- <body>
- <!-- 金币飘落背景 -->
- <div class="coins-rain" id="coinsRain"></div>
- <!-- QQ群信息标题栏 -->
- <div class="qq-group-bar">
- <span class="qq-group-text">🍎交流QQ群:711841924(群一-苹果内测群) 528816639</span>
- </div>
- <div class="app-container">
- <!-- 顶部金币统计 -->
- <div class="gold-header">
- <div class="today-earnings">💎 今日收益</div>
- <div class="gold-amount" id="todayGold">0</div>
- <div class="gold-convert">≈ ¥<span id="rmbValue">0.00</span> 元</div>
- </div>
- <!-- 统计卡片 -->
- <div class="stats-row">
- <div class="stat-box">
- <div class="stat-icon">📺</div>
- <div class="stat-value" id="adCount">0</div>
- <div class="stat-label">观看广告</div>
- </div>
- <div class="stat-box">
- <div class="stat-icon">⏱️</div>
- <div class="stat-value" id="runTime">0</div>
- <div class="stat-label">运行(分)</div>
- </div>
- <div class="stat-box">
- <div class="stat-icon">🎯</div>
- <div class="stat-value" id="successRate">0%</div>
- <div class="stat-label">成功率</div>
- </div>
- </div>
- <!-- 平台列表 -->
- <div class="platforms-section">
- <div class="section-title">📱 金币平台</div>
-
- <div class="platform-card">
- <div class="platform-icon douyin">🎵</div>
- <div class="platform-info">
- <div class="platform-name">抖音极速版</div>
- <div class="platform-status ready" id="status-douyin">✅ 准备就绪</div>
- <div class="progress-bar"><div class="progress-fill" id="progress-douyin" style="width: 0%"></div></div>
- </div>
- <div class="platform-earnings">
- <div class="earnings-amount" id="gold-douyin">0</div>
- <div class="earnings-label">金币</div>
- </div>
- <label class="switch">
- <input type="checkbox" id="enable-douyin" checked>
- <span class="slider"></span>
- </label>
- </div>
- <div class="platform-card">
- <div class="platform-icon kuaishou">⚡</div>
- <div class="platform-info">
- <div class="platform-name">快手极速版</div>
- <div class="platform-status ready" id="status-kuaishou">✅ 准备就绪</div>
- <div class="progress-bar"><div class="progress-fill" id="progress-kuaishou" style="width: 0%"></div></div>
- </div>
- <div class="platform-earnings">
- <div class="earnings-amount" id="gold-kuaishou">0</div>
- <div class="earnings-label">金币</div>
- </div>
- <label class="switch">
- <input type="checkbox" id="enable-kuaishou" checked>
- <span class="slider"></span>
- </label>
- </div>
- <div class="platform-card">
- <div class="platform-icon baidu">🔍</div>
- <div class="platform-info">
- <div class="platform-name">百度极速版</div>
- <div class="platform-status ready" id="status-baidu">✅ 准备就绪</div>
- <div class="progress-bar"><div class="progress-fill" id="progress-baidu" style="width: 0%"></div></div>
- </div>
- <div class="platform-earnings">
- <div class="earnings-amount" id="gold-baidu">0</div>
- <div class="earnings-label">金币</div>
- </div>
- <label class="switch">
- <input type="checkbox" id="enable-baidu" checked>
- <span class="slider"></span>
- </label>
- </div>
- <div class="platform-card">
- <div class="platform-icon fanqie">📖</div>
- <div class="platform-info">
- <div class="platform-name">番茄小说</div>
- <div class="platform-status ready" id="status-fanqie">✅ 准备就绪</div>
- <div class="progress-bar"><div class="progress-fill" id="progress-fanqie" style="width: 0%"></div></div>
- </div>
- <div class="platform-earnings">
- <div class="earnings-amount" id="gold-fanqie">0</div>
- <div class="earnings-label">金币</div>
- </div>
- <label class="switch">
- <input type="checkbox" id="enable-fanqie" checked>
- <span class="slider"></span>
- </label>
- </div>
- </div>
- <!-- 控制面板 -->
- <div class="control-panel">
- <button class="main-btn btn-start" id="btnStart" onclick="startHarvest()">
- <span>🚀</span>
- <span>开始收割金币</span>
- </button>
- <button class="main-btn btn-stop" id="btnStop" onclick="stopHarvest()">
- <span>⏹️</span>
- <span>停止收割</span>
- </button>
- <div class="mode-selector">
- <button class="mode-btn active" data-mode="smart" onclick="setMode('smart')">
- 🤖 智能模式
- </button>
- <button class="mode-btn" data-mode="aggressive" onclick="setMode('aggressive')">
- ⚡ 激进模式
- </button>
- <button class="mode-btn" data-mode="safe" onclick="setMode('safe')">
- 🛡️ 安全模式
- </button>
- </div>
- </div>
- <!-- 日志区域 -->
- <div class="log-section">
- <div class="log-header">
- <span class="section-title">📋 收割日志</span>
- <button onclick="clearLogs()" style="background: transparent; border: none; color: var(--text-secondary); font-size: 12px; cursor: pointer;">清空</button>
- </div>
- <div class="log-container" id="logContainer">
- <div class="log-entry">
- <span class="log-time">[系统]</span>
- <span class="log-success">金币收割机 Pro 已启动</span>
- </div>
- </div>
- </div>
- </div>
- <!-- Toast -->
- <div class="toast" id="toast"></div>
- <script>
- // ============================================
- // 金币收割机 Pro - 核心逻辑
- // ============================================
- const CONFIG = {
- VERSION: '2.0.0',
- GOLD_TO_RMB: 0.0001, // 金币转人民币比例
- AD_WATCH_TIME: 35000, // 广告观看时间(毫秒)
- COOLDOWN_TIME: 5000, // 冷却时间
- };
- const state = {
- isRunning: false,
- mode: 'smart',
- todayGold: 0,
- adCount: 0,
- startTime: null,
- platforms: {
- douyin: { enabled: true, gold: 0, status: 'ready', name: '抖音极速版' },
- kuaishou: { enabled: true, gold: 0, status: 'ready', name: '快手极速版' },
- baidu: { enabled: true, gold: 0, status: 'ready', name: '百度极速版' },
- fanqie: { enabled: true, gold: 0, status: 'ready', name: '番茄小说' }
- }
- };
- // 初始化金币雨
- function initCoinRain() {
- const container = document.getElementById('coinsRain');
- const coins = ['💰', '💎', '🪙', '💵', '💴'];
-
- for (let i = 0; i < 20; i++) {
- const coin = document.createElement('div');
- coin.className = 'coin';
- coin.textContent = coins[Math.floor(Math.random() * coins.length)];
- coin.style.left = Math.random() * 100 + '%';
- coin.style.animationDuration = (Math.random() * 5 + 5) + 's';
- coin.style.animationDelay = Math.random() * 5 + 's';
- container.appendChild(coin);
- }
- }
- // 添加日志
- function addLog(message, type = 'info') {
- const container = document.getElementById('logContainer');
- const time = new Date().toLocaleTimeString('zh-CN', { hour12: false });
- const typeClass = type === 'gold' ? 'log-gold' : type === 'success' ? 'log-success' : type === 'error' ? 'log-error' : '';
-
- const entry = document.createElement('div');
- entry.className = 'log-entry';
- entry.innerHTML = `<span class="log-time">[${time}]</span><span class="${typeClass}">${message}</span>`;
-
- container.insertBefore(entry, container.firstChild);
-
- // 限制日志数量
- while (container.children.length > 50) {
- container.removeChild(container.lastChild);
- }
- }
- // 显示Toast
- function showToast(message) {
- const toast = document.getElementById('toast');
- toast.textContent = message;
- toast.classList.add('show');
- setTimeout(() => toast.classList.remove('show'), 3000);
- }
- // 更新金币显示
- function updateGoldDisplay() {
- document.getElementById('todayGold').textContent = state.todayGold.toLocaleString();
- document.getElementById('rmbValue').textContent = (state.todayGold * CONFIG.GOLD_TO_RMB).toFixed(2);
- document.getElementById('adCount').textContent = state.adCount;
-
- // 更新运行时间
- if (state.startTime) {
- const minutes = Math.floor((Date.now() - state.startTime) / 60000);
- document.getElementById('runTime').textContent = minutes;
- }
-
- // 更新各平台金币
- Object.keys(state.platforms).forEach(key => {
- document.getElementById('gold-' + key).textContent = state.platforms[key].gold;
- });
- }
- // 设置模式
- function setMode(mode) {
- state.mode = mode;
- document.querySelectorAll('.mode-btn').forEach(btn => {
- btn.classList.toggle('active', btn.dataset.mode === mode);
- });
- addLog(`切换到${mode === 'smart' ? '智能' : mode === 'aggressive' ? '激进' : '安全'}模式`, 'info');
- }
- // 开始收割
- async function startHarvest() {
- if (state.isRunning) return;
-
- state.isRunning = true;
- state.startTime = Date.now();
-
- document.getElementById('btnStart').classList.add('hidden');
- document.getElementById('btnStop').classList.add('active');
-
- addLog('🚀 开始自动收割金币!', 'success');
- showToast('🚀 金币收割已启动!');
-
- // 开始收割循环
- harvestLoop();
- }
- // 停止收割
- function stopHarvest() {
- state.isRunning = false;
-
- document.getElementById('btnStart').classList.remove('hidden');
- document.getElementById('btnStop').classList.remove('active');
-
- // 重置所有平台状态
- Object.keys(state.platforms).forEach(key => {
- state.platforms[key].status = 'ready';
- updatePlatformStatus(key, 'ready');
- });
-
- addLog('⏹️ 金币收割已停止', 'info');
- showToast('⏹️ 已停止收割');
- }
- // 收割循环
- async function harvestLoop() {
- while (state.isRunning) {
- const enabledPlatforms = Object.keys(state.platforms).filter(key =>
- document.getElementById('enable-' + key).checked
- );
-
- if (enabledPlatforms.length === 0) {
- addLog('⚠️ 请至少选择一个平台', 'warning');
- stopHarvest();
- break;
- }
-
- for (const platform of enabledPlatforms) {
- if (!state.isRunning) break;
- await harvestPlatform(platform);
- }
-
- // 根据模式调整间隔
- const interval = state.mode === 'aggressive' ? 2000 : state.mode === 'safe' ? 8000 : 5000;
- await sleep(interval);
- }
- }
- // 收割单个平台
- async function harvestPlatform(platform) {
- const p = state.platforms[platform];
- p.status = 'running';
- updatePlatformStatus(platform, 'running');
-
- addLog(`📱 开始收割 ${p.name}`, 'info');
-
- // 模拟打开应用
- await sleep(1000);
-
- // 模拟看广告过程
- for (let i = 0; i <= 100; i += 10) {
- if (!state.isRunning) break;
- document.getElementById('progress-' + platform).style.width = i + '%';
- await sleep(CONFIG.AD_WATCH_TIME / 10);
- }
-
- // 获得金币奖励
- const reward = Math.floor(Math.random() * 500) + 200;
- p.gold += reward;
- state.todayGold += reward;
- state.adCount++;
-
- addLog(`💰 ${p.name} 获得 ${reward} 金币!`, 'gold');
-
- // 更新显示
- updateGoldDisplay();
-
- // 冷却
- p.status = 'cooldown';
- updatePlatformStatus(platform, 'cooldown');
- await sleep(CONFIG.COOLDOWN_TIME);
-
- p.status = 'ready';
- updatePlatformStatus(platform, 'ready');
- document.getElementById('progress-' + platform).style.width = '0%';
- }
- // 更新平台状态显示
- function updatePlatformStatus(platform, status) {
- const statusEl = document.getElementById('status-' + platform);
- const texts = {
- ready: '✅ 准备就绪',
- running: '⚡ 正在收割...',
- cooldown: '⏱️ 冷却中...'
- };
- statusEl.textContent = texts[status];
- statusEl.className = 'platform-status ' + status;
- }
- // 清空日志
- function clearLogs() {
- document.getElementById('logContainer').innerHTML = `
- <div class="log-entry">
- <span class="log-time">[系统]</span>
- <span class="log-success">日志已清空</span>
- </div>
- `;
- }
- // 工具函数
- function sleep(ms) {
- return new Promise(resolve => setTimeout(resolve, ms));
- }
- // 初始化
- document.addEventListener('DOMContentLoaded', function() {
- initCoinRain();
- updateGoldDisplay();
- addLog('💎 金币收割机 Pro v' + CONFIG.VERSION + ' 已就绪', 'success');
- addLog('📱 支持平台: 抖音/快手/百度/番茄', 'info');
- });
- // 监听平台开关
- Object.keys(state.platforms).forEach(key => {
- document.getElementById('enable-' + key).addEventListener('change', function() {
- const action = this.checked ? '启用' : '禁用';
- addLog(`${action} ${state.platforms[key].name}`, 'info');
- });
- });
- </script>
- </body>
- </html>
复制代码
| |  | |  |
|