mirror of
https://github.com/kotatogram/kotatogram-desktop
synced 2025-08-30 14:17:45 +00:00
Add proof-of-concept support for keyboardButtonWebView.
This commit is contained in:
@@ -222,7 +222,14 @@ void activateBotCommand(
|
|||||||
} break;
|
} break;
|
||||||
|
|
||||||
case ButtonType::WebView: {
|
case ButtonType::WebView: {
|
||||||
|
if (const auto m = CheckMainWidget(&msg->history()->session())) {
|
||||||
|
if (const auto bot = msg->getMessageBot()) {
|
||||||
|
m->controller()->requestAttachWebview(
|
||||||
|
bot,
|
||||||
|
bot,
|
||||||
|
button->data);
|
||||||
|
}
|
||||||
|
}
|
||||||
} break;
|
} break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -429,12 +429,14 @@ void SessionNavigation::resolveAttachWebview(
|
|||||||
|
|
||||||
void SessionNavigation::requestAttachWebview(
|
void SessionNavigation::requestAttachWebview(
|
||||||
not_null<PeerData*> peer,
|
not_null<PeerData*> peer,
|
||||||
not_null<UserData*> bot) {
|
not_null<UserData*> bot,
|
||||||
|
const QByteArray &url) {
|
||||||
|
using Flag = MTPmessages_RequestWebView::Flag;
|
||||||
_api.request(MTPmessages_RequestWebView(
|
_api.request(MTPmessages_RequestWebView(
|
||||||
MTP_flags(0),
|
MTP_flags(url.isEmpty() ? Flag(0) : Flag::f_url),
|
||||||
peer->input,
|
peer->input,
|
||||||
bot->inputUser,
|
bot->inputUser,
|
||||||
MTPstring(), // start_param
|
MTP_bytes(url),
|
||||||
MTPDataJSON() // theme_params
|
MTPDataJSON() // theme_params
|
||||||
)).done([=](const MTPWebViewResult &result) {
|
)).done([=](const MTPWebViewResult &result) {
|
||||||
result.match([&](const MTPDwebViewResultUrl &data) {
|
result.match([&](const MTPDwebViewResultUrl &data) {
|
||||||
|
@@ -208,6 +208,10 @@ public:
|
|||||||
void resolveAttachWebview(
|
void resolveAttachWebview(
|
||||||
not_null<PeerData*> peer,
|
not_null<PeerData*> peer,
|
||||||
const QString &botUsername);
|
const QString &botUsername);
|
||||||
|
void requestAttachWebview(
|
||||||
|
not_null<PeerData*> peer,
|
||||||
|
not_null<UserData*> bot,
|
||||||
|
const QByteArray &url = QByteArray());
|
||||||
[[nodiscard]] auto inlineResultConfirmed() const
|
[[nodiscard]] auto inlineResultConfirmed() const
|
||||||
-> rpl::producer<InlineBots::ResultSelected>;
|
-> rpl::producer<InlineBots::ResultSelected>;
|
||||||
|
|
||||||
@@ -278,9 +282,6 @@ private:
|
|||||||
not_null<PeerData*> peer,
|
not_null<PeerData*> peer,
|
||||||
const PeerByLinkInfo &info);
|
const PeerByLinkInfo &info);
|
||||||
|
|
||||||
void requestAttachWebview(
|
|
||||||
not_null<PeerData*> peer,
|
|
||||||
not_null<UserData*> bot);
|
|
||||||
void requestAddToMenu(not_null<UserData*> bot, Fn<void()> callback);
|
void requestAddToMenu(not_null<UserData*> bot, Fn<void()> callback);
|
||||||
void showAttachWebview(
|
void showAttachWebview(
|
||||||
not_null<PeerData*> peer,
|
not_null<PeerData*> peer,
|
||||||
|
Reference in New Issue
Block a user