mirror of
https://github.com/MarshalX/telegram-crawler.git
synced 2024-12-26 22:40:24 +01:00
Update content of files
This commit is contained in:
parent
cf97d9042f
commit
558b1dbcfd
4 changed files with 166 additions and 6 deletions
|
@ -450,6 +450,85 @@
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var windowOpen = window.open;
|
||||||
|
window.open = function(url) {
|
||||||
|
WebApp.openLink(url);
|
||||||
|
};
|
||||||
|
|
||||||
|
var BackButton = (function() {
|
||||||
|
var isVisible = false;
|
||||||
|
|
||||||
|
var backButton = {};
|
||||||
|
Object.defineProperty(backButton, 'isVisible', {
|
||||||
|
set: function(val){ setParams({is_visible: val}); },
|
||||||
|
get: function(){ return isVisible; },
|
||||||
|
enumerable: true
|
||||||
|
});
|
||||||
|
|
||||||
|
var curButtonState = null;
|
||||||
|
|
||||||
|
WebView.onEvent('back_button_pressed', onBackButtonPressed);
|
||||||
|
|
||||||
|
function onBackButtonPressed() {
|
||||||
|
receiveWebViewEvent('backButtonClicked');
|
||||||
|
}
|
||||||
|
|
||||||
|
function buttonParams() {
|
||||||
|
return {is_visible: isVisible};
|
||||||
|
}
|
||||||
|
|
||||||
|
function buttonState(btn_params) {
|
||||||
|
if (typeof btn_params === 'undefined') {
|
||||||
|
btn_params = buttonParams();
|
||||||
|
}
|
||||||
|
return JSON.stringify(btn_params);
|
||||||
|
}
|
||||||
|
|
||||||
|
function buttonCheckVersion() {
|
||||||
|
if (!versionAtLeast('6.1')) {
|
||||||
|
console.warn('[Telegram.WebApp] BackButton is not supported in version ' + webAppVersion);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateButton() {
|
||||||
|
var btn_params = buttonParams();
|
||||||
|
var btn_state = buttonState(btn_params);
|
||||||
|
if (curButtonState === btn_state) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
curButtonState = btn_state;
|
||||||
|
WebView.postEvent('web_app_setup_back_button', false, btn_params);
|
||||||
|
}
|
||||||
|
|
||||||
|
function setParams(params) {
|
||||||
|
if (typeof params.is_visible !== 'undefined') {
|
||||||
|
isVisible = !!params.is_visible;
|
||||||
|
}
|
||||||
|
updateButton();
|
||||||
|
return backButton;
|
||||||
|
}
|
||||||
|
|
||||||
|
backButton.onClick = function(callback) {
|
||||||
|
buttonCheckVersion();
|
||||||
|
onWebViewEvent('backButtonClicked', callback);
|
||||||
|
return backButton;
|
||||||
|
};
|
||||||
|
backButton.offClick = function(callback) {
|
||||||
|
buttonCheckVersion();
|
||||||
|
offWebViewEvent('backButtonClicked', callback);
|
||||||
|
return backButton;
|
||||||
|
};
|
||||||
|
backButton.show = function() {
|
||||||
|
buttonCheckVersion();
|
||||||
|
return setParams({is_visible: true});
|
||||||
|
};
|
||||||
|
backButton.hide = function() {
|
||||||
|
buttonCheckVersion();
|
||||||
|
return setParams({is_visible: false});
|
||||||
|
};
|
||||||
|
return backButton;
|
||||||
|
})();
|
||||||
|
|
||||||
var mainButtonHeight = 0;
|
var mainButtonHeight = 0;
|
||||||
var MainButton = (function() {
|
var MainButton = (function() {
|
||||||
var isVisible = false;
|
var isVisible = false;
|
||||||
|
@ -681,6 +760,51 @@
|
||||||
return mainButton;
|
return mainButton;
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
var HapticFeedback = (function() {
|
||||||
|
var hapticFeedback = {};
|
||||||
|
|
||||||
|
function triggerFeedback(params) {
|
||||||
|
if (params.type == 'impact') {
|
||||||
|
if (params.impact_style != 'light' &&
|
||||||
|
params.impact_style != 'medium' &&
|
||||||
|
params.impact_style != 'heavy' &&
|
||||||
|
params.impact_style != 'rigid' &&
|
||||||
|
params.impact_style != 'soft') {
|
||||||
|
console.error('[Telegram.WebApp] Haptic impact style is invalid', params.impact_style);
|
||||||
|
throw Error('WebAppHapticImpactStyleInvalid');
|
||||||
|
}
|
||||||
|
} else if (params.type == 'notification') {
|
||||||
|
if (params.notification_type != 'error' &&
|
||||||
|
params.notification_type != 'success' &&
|
||||||
|
params.notification_type != 'warning') {
|
||||||
|
console.error('[Telegram.WebApp] Haptic notification type is invalid', params.notification_type);
|
||||||
|
throw Error('WebAppHapticNotificationTypeInvalid');
|
||||||
|
}
|
||||||
|
} else if (params.type == 'selection_change') {
|
||||||
|
// no params needed
|
||||||
|
} else {
|
||||||
|
console.error('[Telegram.WebApp] Haptic feedback type is invalid', params.type);
|
||||||
|
throw Error('WebAppHapticFeedbackTypeInvalid');
|
||||||
|
}
|
||||||
|
if (!versionAtLeast('6.1')) {
|
||||||
|
console.warn('[Telegram.WebApp] HapticFeedback is not supported in version ' + webAppVersion);
|
||||||
|
}
|
||||||
|
WebView.postEvent('web_app_trigger_haptic_feedback', false, params);
|
||||||
|
return hapticFeedback;
|
||||||
|
}
|
||||||
|
|
||||||
|
hapticFeedback.impactOccupped = function(style) {
|
||||||
|
return triggerFeedback({type: 'impact', impact_style: style});
|
||||||
|
};
|
||||||
|
hapticFeedback.notificationOccurred = function(type) {
|
||||||
|
return triggerFeedback({type: 'notification', notification_type: type});
|
||||||
|
};
|
||||||
|
hapticFeedback.selectionChanged = function() {
|
||||||
|
return triggerFeedback({type: 'selection_change'});
|
||||||
|
};
|
||||||
|
return hapticFeedback;
|
||||||
|
})();
|
||||||
|
|
||||||
var webAppInvoices = {};
|
var webAppInvoices = {};
|
||||||
function onInvoiceClosed(eventType, eventData) {
|
function onInvoiceClosed(eventType, eventData) {
|
||||||
if (eventData.slug && webAppInvoices[eventData.slug]) {
|
if (eventData.slug && webAppInvoices[eventData.slug]) {
|
||||||
|
@ -732,10 +856,18 @@
|
||||||
get: function(){ return (viewportStableHeight === false ? window.innerHeight : viewportStableHeight) - mainButtonHeight; },
|
get: function(){ return (viewportStableHeight === false ? window.innerHeight : viewportStableHeight) - mainButtonHeight; },
|
||||||
enumerable: true
|
enumerable: true
|
||||||
});
|
});
|
||||||
|
Object.defineProperty(WebApp, 'BackButton', {
|
||||||
|
value: BackButton,
|
||||||
|
enumerable: true
|
||||||
|
});
|
||||||
Object.defineProperty(WebApp, 'MainButton', {
|
Object.defineProperty(WebApp, 'MainButton', {
|
||||||
value: MainButton,
|
value: MainButton,
|
||||||
enumerable: true
|
enumerable: true
|
||||||
});
|
});
|
||||||
|
Object.defineProperty(WebApp, 'HapticFeedback', {
|
||||||
|
value: HapticFeedback,
|
||||||
|
enumerable: true
|
||||||
|
});
|
||||||
WebApp.isVersionAtLeast = function(ver) {
|
WebApp.isVersionAtLeast = function(ver) {
|
||||||
return versionAtLeast(ver);
|
return versionAtLeast(ver);
|
||||||
};
|
};
|
||||||
|
@ -755,6 +887,21 @@
|
||||||
}
|
}
|
||||||
WebView.postEvent('web_app_data_send', false, {data: data});
|
WebView.postEvent('web_app_data_send', false, {data: data});
|
||||||
};
|
};
|
||||||
|
WebApp.openLink = function (url) {
|
||||||
|
var a = document.createElement('A');
|
||||||
|
a.href = url;
|
||||||
|
if (a.protocol != 'http:' &&
|
||||||
|
a.protocol != 'https:') {
|
||||||
|
console.error('[Telegram.WebApp] Url protocol is not supported', url);
|
||||||
|
throw Error('WebAppTgUrlInvalid');
|
||||||
|
}
|
||||||
|
var url = a.href;
|
||||||
|
if (versionAtLeast('6.1')) {
|
||||||
|
WebView.postEvent('web_app_open_link', false, {url: url});
|
||||||
|
} else {
|
||||||
|
windowOpen(url, '_blank');
|
||||||
|
}
|
||||||
|
};
|
||||||
WebApp.openTelegramLink = function (url) {
|
WebApp.openTelegramLink = function (url) {
|
||||||
var a = document.createElement('A');
|
var a = document.createElement('A');
|
||||||
a.href = url;
|
a.href = url;
|
||||||
|
@ -768,7 +915,7 @@
|
||||||
throw Error('WebAppTgUrlInvalid');
|
throw Error('WebAppTgUrlInvalid');
|
||||||
}
|
}
|
||||||
var path_full = a.pathname + a.search;
|
var path_full = a.pathname + a.search;
|
||||||
if (isIframe || versionAtLeast('1.1')) {
|
if (isIframe || versionAtLeast('6.1')) {
|
||||||
WebView.postEvent('web_app_open_tg_link', false, {path_full: path_full});
|
WebView.postEvent('web_app_open_tg_link', false, {path_full: path_full});
|
||||||
} else {
|
} else {
|
||||||
location.href = 'https://t.me' + path_full;
|
location.href = 'https://t.me' + path_full;
|
||||||
|
@ -785,7 +932,7 @@
|
||||||
console.error('[Telegram.WebApp] Invoice url is invalid', url);
|
console.error('[Telegram.WebApp] Invoice url is invalid', url);
|
||||||
throw Error('WebAppInvoiceUrlInvalid');
|
throw Error('WebAppInvoiceUrlInvalid');
|
||||||
}
|
}
|
||||||
if (!versionAtLeast('1.1')) {
|
if (!versionAtLeast('6.1')) {
|
||||||
console.error('[Telegram.WebApp] Method openInvoice is not supported in version ' + webAppVersion);
|
console.error('[Telegram.WebApp] Method openInvoice is not supported in version ' + webAppVersion);
|
||||||
throw Error('WebAppMethodUnsupported');
|
throw Error('WebAppMethodUnsupported');
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<meta name="MobileOptimized" content="176" />
|
<meta name="MobileOptimized" content="176" />
|
||||||
<meta name="HandheldFriendly" content="True" />
|
<meta name="HandheldFriendly" content="True" />
|
||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<script src="https://tg.dev/js/telegram-web-app.js?9"></script>
|
<script src="https://tg.dev/js/telegram-web-app.js?10"></script>
|
||||||
<script>
|
<script>
|
||||||
function setThemeClass() {
|
function setThemeClass() {
|
||||||
document.documentElement.className = Telegram.WebApp.colorScheme;
|
document.documentElement.className = Telegram.WebApp.colorScheme;
|
||||||
|
@ -441,7 +441,7 @@
|
||||||
</div>
|
</div>
|
||||||
<script src="https://tg.dev/js/jquery.min.js"></script>
|
<script src="https://tg.dev/js/jquery.min.js"></script>
|
||||||
<script src="https://tg.dev/js/tgsticker.js?27"></script>
|
<script src="https://tg.dev/js/tgsticker.js?27"></script>
|
||||||
<script src="/js/cafe.js?19"></script>
|
<script src="/js/cafe.js?20"></script>
|
||||||
<script>Cafe.init({"apiUrl":"\/cafe\/api","userId":0,"userHash":null});</script>
|
<script>Cafe.init({"apiUrl":"\/cafe\/api","userId":0,"userHash":null});</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<meta name="MobileOptimized" content="176" />
|
<meta name="MobileOptimized" content="176" />
|
||||||
<meta name="HandheldFriendly" content="True" />
|
<meta name="HandheldFriendly" content="True" />
|
||||||
<meta name="robots" content="noindex,nofollow" />
|
<meta name="robots" content="noindex,nofollow" />
|
||||||
<script src="https://telegram.org/js/telegram-web-app.js?9"></script>
|
<script src="https://telegram.org/js/telegram-web-app.js?10"></script>
|
||||||
<script>
|
<script>
|
||||||
function setThemeClass() {
|
function setThemeClass() {
|
||||||
document.documentElement.className = Telegram.WebApp.colorScheme;
|
document.documentElement.className = Telegram.WebApp.colorScheme;
|
||||||
|
@ -170,7 +170,8 @@
|
||||||
<li><a href="https://telegram.org/" target="_blank">target="_blank" link</a> (opens outside webview)</li>
|
<li><a href="https://telegram.org/" target="_blank">target="_blank" link</a> (opens outside webview)</li>
|
||||||
<li><a href="javascript:window.open('https://telegram.org/');">window.open() link</a> (opens outside webview)</li>
|
<li><a href="javascript:window.open('https://telegram.org/');">window.open() link</a> (opens outside webview)</li>
|
||||||
<li><a href="https://t.me/like">LikeBot t.me link</a> (opens inside Telegram app)</li>
|
<li><a href="https://t.me/like">LikeBot t.me link</a> (opens inside Telegram app)</li>
|
||||||
<li><a href="javascript:Telegram.WebApp.openTelegramLink('https://t.me/VoteBot');">web_app_open_tg_link()</a> (opens inside Telegram app)</li>
|
<li><a href="javascript:Telegram.WebApp.openTelegramLink('https://t.me/vote');">web_app_open_tg_link()</a> (opens inside Telegram app)</li>
|
||||||
|
<li><a href="javascript:Telegram.WebApp.openLink('https://google.com/');">web_app_open_link()</a> (opens outside webview)</li>
|
||||||
<li><a href="tg://resolve?domain=vote">VoteBot tg:// link</a> (does not open)</li>
|
<li><a href="tg://resolve?domain=vote">VoteBot tg:// link</a> (does not open)</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>Test permissions:</p>
|
<p>Test permissions:</p>
|
||||||
|
@ -185,6 +186,12 @@
|
||||||
<li><a href="javascript:;" onclick="confirm('Are you sure?');">confirm</a></li>
|
<li><a href="javascript:;" onclick="confirm('Are you sure?');">confirm</a></li>
|
||||||
<li><a href="javascript:;" onclick="prompt('How old are you?');">prompt</a></li>
|
<li><a href="javascript:;" onclick="prompt('How old are you?');">prompt</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<p>Haptics:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Impact: <a href="javascript:Telegram.WebApp.HapticFeedback.impactOccupped('heavy');">heavy</a>, <a href="javascript:Telegram.WebApp.HapticFeedback.impactOccupped('light');">light</a>, <a href="javascript:Telegram.WebApp.HapticFeedback.impactOccupped('medium');">medium</a>, <a href="javascript:Telegram.WebApp.HapticFeedback.impactOccupped('rigid');">rigid</a>, <a href="javascript:Telegram.WebApp.HapticFeedback.impactOccupped('soft');">soft</a></li>
|
||||||
|
<li>Notification: <a href="javascript:Telegram.WebApp.HapticFeedback.notificationOccurred('error');">error</a>, <a href="javascript:Telegram.WebApp.HapticFeedback.notificationOccurred('success');">success</a>, <a href="javascript:Telegram.WebApp.HapticFeedback.notificationOccurred('warning');">warning</a></li>
|
||||||
|
<li>Selection: <a href="javascript:Telegram.WebApp.HapticFeedback.selectionChanged();">changed</a></li>
|
||||||
|
</ul>
|
||||||
<pre><code id="webview_data"></code></pre>
|
<pre><code id="webview_data"></code></pre>
|
||||||
<div class="hint">
|
<div class="hint">
|
||||||
Data passed to webview.
|
Data passed to webview.
|
||||||
|
|
|
@ -34,6 +34,7 @@ var Cafe = {
|
||||||
Telegram.WebApp.MainButton.setParams({
|
Telegram.WebApp.MainButton.setParams({
|
||||||
text_color: '#fff'
|
text_color: '#fff'
|
||||||
}).onClick(Cafe.mainBtnClicked);
|
}).onClick(Cafe.mainBtnClicked);
|
||||||
|
Telegram.WebApp.BackButton.onClick(Cafe.backBtnClicked);
|
||||||
initRipple();
|
initRipple();
|
||||||
},
|
},
|
||||||
initLotties: function() {
|
initLotties: function() {
|
||||||
|
@ -65,6 +66,9 @@ var Cafe = {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
Cafe.toggleMode(false);
|
Cafe.toggleMode(false);
|
||||||
},
|
},
|
||||||
|
backBtnClicked: function() {
|
||||||
|
Cafe.toggleMode(false);
|
||||||
|
},
|
||||||
getOrderItem: function(itemEl) {
|
getOrderItem: function(itemEl) {
|
||||||
var id = itemEl.data('item-id');
|
var id = itemEl.data('item-id');
|
||||||
return $('.js-order-item').filter(function() {
|
return $('.js-order-item').filter(function() {
|
||||||
|
@ -224,6 +228,7 @@ var Cafe = {
|
||||||
RLottie.setVisible(this, true);
|
RLottie.setVisible(this, true);
|
||||||
});
|
});
|
||||||
}, anim_duration);
|
}, anim_duration);
|
||||||
|
Telegram.WebApp.BackButton.show();
|
||||||
} else {
|
} else {
|
||||||
$('.js-item-lottie').each(function() {
|
$('.js-item-lottie').each(function() {
|
||||||
RLottie.setVisible(this, false);
|
RLottie.setVisible(this, false);
|
||||||
|
@ -236,6 +241,7 @@ var Cafe = {
|
||||||
RLottie.setVisible(this, true);
|
RLottie.setVisible(this, true);
|
||||||
});
|
});
|
||||||
}, anim_duration);
|
}, anim_duration);
|
||||||
|
Telegram.WebApp.BackButton.hide();
|
||||||
}
|
}
|
||||||
Cafe.updateMainButton();
|
Cafe.updateMainButton();
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in a new issue