diff --git a/src/pages/channels.js b/src/pages/channels.js index df60c8d..7cfe3ce 100644 --- a/src/pages/channels.js +++ b/src/pages/channels.js @@ -1428,13 +1428,26 @@ async function openConfigDialog(pid, page, state, accountId) { if (!logBox) return const msg = e.payload?.message || '' const isQrLine = /[\u2580\u2584\u2588]/.test(msg) - if (isQrLine && actionId === 'login') { + if (isQrLine && (actionId === 'login' || actionId === 'install')) { _qrBuf.push(msg) clearTimeout(_qrTimer) _qrTimer = setTimeout(_flushQr, 500) } else if (!isQrLine) { if (_qrBuf.length && !_qrDone) _flushQr() - if (msg.trim()) { + // 检测微信扫码 URL 并渲染为可扫描的二维码 + const weixinUrlMatch = msg.match(/(https:\/\/liteapp\.weixin\.qq\.com\/q\/[^\s]+)/) + if (weixinUrlMatch && !_qrDone) { + _qrDone = true + const qrUrl = weixinUrlMatch[1] + const wrap = document.createElement('div') + wrap.style.cssText = 'text-align:center;margin:12px 0;padding:16px;background:#fff;border-radius:var(--radius-md);border:1px solid var(--border-primary)' + wrap.innerHTML = ` +
${t('channels.weixinScanQr')}
+ WeChat QR +
${t('channels.weixinOpenInBrowser') || '或点击此链接在浏览器中打开'}
+ ` + logBox.appendChild(wrap) + } else if (msg.trim()) { const div = document.createElement('div') div.textContent = msg logBox.appendChild(div)