Ссылка на бота: верный username (@pdf2scan_pybot) + открытие приложения через tg://
- футер сайта вёл на несуществующий @pdf2scan_bot (t.me не резолвил) → @pdf2scan_pybot - клик по ссылке открывает приложение (tg://resolve) с откатом на веб t.me - логин на /developers тоже открывает приложение (d.url = tg://), а не браузер Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -2854,7 +2854,8 @@ _API_DOCS_HTML = """<!DOCTYPE html>
|
|||||||
var r = await fetch('/api/auth/token', {method:'POST'});
|
var r = await fetch('/api/auth/token', {method:'POST'});
|
||||||
var d = await r.json();
|
var d = await r.json();
|
||||||
var token = d.token;
|
var token = d.token;
|
||||||
window.open('https://t.me/' + BOT + '?start=webauth_' + token, '_blank');
|
// d.url = tg://resolve?... — открывает приложение напрямую; https-ссылка как запасной вариант
|
||||||
|
window.open(d.url || ('https://t.me/' + BOT + '?start=webauth_' + token), '_blank');
|
||||||
setStatus('Откройте Telegram-бота и нажмите Start — ключ появится здесь автоматически...');
|
setStatus('Откройте Telegram-бота и нажмите Start — ключ появится здесь автоматически...');
|
||||||
var tries = 0;
|
var tries = 0;
|
||||||
pollTimer = setInterval(async function(){
|
pollTimer = setInterval(async function(){
|
||||||
|
|||||||
@@ -1237,7 +1237,7 @@
|
|||||||
<!--SEO_FAQ-->
|
<!--SEO_FAQ-->
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
pdf2scan — <span data-i18n="footer_text">превращаем PDF в скан</span> | <a href="https://t.me/pdf2scan_bot" style="color:var(--blue); text-decoration:none;" data-i18n="footer_tg">Telegram-бот</a> | <a href="/developers" style="color:var(--blue); text-decoration:none;" data-i18n="footer_api">API для бизнеса</a> | <a href="#" onclick="showDonateCard(false);document.getElementById('donate-card').scrollIntoView({behavior:'smooth'});return false;" style="color:var(--blue); text-decoration:none;" data-i18n="footer_donate">🍩 Поддержать</a> | <a href="/offer" style="color:var(--blue); text-decoration:none;" data-i18n="footer_offer">Оферта</a>
|
pdf2scan — <span data-i18n="footer_text">превращаем PDF в скан</span> | <a href="https://t.me/pdf2scan_pybot" onclick="return openBot(event)" style="color:var(--blue); text-decoration:none;" data-i18n="footer_tg">Telegram-бот</a> | <a href="/developers" style="color:var(--blue); text-decoration:none;" data-i18n="footer_api">API для бизнеса</a> | <a href="#" onclick="showDonateCard(false);document.getElementById('donate-card').scrollIntoView({behavior:'smooth'});return false;" style="color:var(--blue); text-decoration:none;" data-i18n="footer_donate">🍩 Поддержать</a> | <a href="/offer" style="color:var(--blue); text-decoration:none;" data-i18n="footer_offer">Оферта</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -2878,6 +2878,29 @@
|
|||||||
_authToken = null;
|
_authToken = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ── Открыть Telegram-бота ─────────────────────────────────────────────────
|
||||||
|
// Пытаемся открыть приложение напрямую (tg://), а если оно не перехватило
|
||||||
|
// переход (не установлено) — через ~1.1 c откатываемся на веб-версию t.me.
|
||||||
|
function openBot(e) {
|
||||||
|
try { if (e) e.preventDefault(); } catch (_) {}
|
||||||
|
var appUrl = 'tg://resolve?domain=pdf2scan_pybot';
|
||||||
|
var webUrl = 'https://t.me/pdf2scan_pybot';
|
||||||
|
var opened = false;
|
||||||
|
function markOpened() { if (document.hidden) opened = true; } // приложение открылось → вкладка спряталась
|
||||||
|
function onBlur() { opened = true; }
|
||||||
|
document.addEventListener('visibilitychange', markOpened);
|
||||||
|
window.addEventListener('blur', onBlur);
|
||||||
|
window.addEventListener('pagehide', onBlur);
|
||||||
|
try { window.location.href = appUrl; } catch (_) {}
|
||||||
|
setTimeout(function () {
|
||||||
|
document.removeEventListener('visibilitychange', markOpened);
|
||||||
|
window.removeEventListener('blur', onBlur);
|
||||||
|
window.removeEventListener('pagehide', onBlur);
|
||||||
|
if (!opened) window.location.href = webUrl; // приложения нет — открываем веб
|
||||||
|
}, 1100);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// ── Инициализация ─────────────────────────────────────────────────────────
|
// ── Инициализация ─────────────────────────────────────────────────────────
|
||||||
tgUser = loadSavedAuth();
|
tgUser = loadSavedAuth();
|
||||||
renderHeaderAuth();
|
renderHeaderAuth();
|
||||||
|
|||||||
Reference in New Issue
Block a user