Кажется, я либо неправильно понимаю что-то базовое, либо вижу странное поведение мессенджера с точки зрения веб-просмотров.
Проблема возникла после того, как я только что включил наш чат в плагин чата для клиентов на нашем сайте, и страница веб-просмотра не очень хорошо подходит как для оконного веб-просмотра, так и для полного просмотра в настольном браузере.
Для создания кнопок я создал класс для представления наших web_url
кнопок, который выглядит следующим образом:
public class WebViewButton
{
public WebViewButton(string title, string weburl)
{
url = weburl;
fallback_url = $"{weburl}&iswebview=false";
this.title = title;
}
public string type = "web_url";
public string url { get; set; }
public string title { get; set; }
public string webview_height_ratio = "full";
public bool messenger_extensions = true;
public string fallback_url { get; set; }
}
Так что, в основном, с помощью URL-адреса типа https://example.com/webviewpage?id=123
эта кнопка будет иметь:
url = https://example.com/webviewpage?id=123
fallback_url = https://example.com/webviewpage?id=123&iswebview=false
Мой веб-сервер затем может изменять содержимое в зависимости от того, как оно будет отображаться в рамках чата.
Согласно документации, fallback_url
используется, когда клиент не поддерживает расширения мессенджера.
"URL-адрес [fallback_url] для использования на клиентах, которые не поддерживают расширения Messenger. Если это не определено, URL-адрес будет использоваться в качестве запасного. Он может быть указан только в том случае, если messenger_extensions имеет значение true." ( ссылка на документацию )
При использовании бота через messenger.com
или facebook.com
нажатие кнопки web_url
загружает страницу в обычное оконное веб-представление, которое выглядит следующим образом:
Проблема в том, что используется свойство fallback_url
, а не свойство url
на messenger.com и facebook.com.
Насколько я понимаю, эта загруженная iframe веб-страница (как показано выше) предполагает поддержку messenger_extensions IS (через messenger.com / facebook.com), поскольку она загружала страницу в оконное веб-представление, в то же время, используя fallback_url
, предполагается, что расширения мессенджера не поддерживаются. Это не кажется правильным.
Если я отобразлю эти кнопки с помощью messenger_extensions = false
, они начнут загружать эти URL-адреса во вкладки браузера на каждом устройстве / платформе, как и следовало ожидать. Все это кажется очень запутанным и делает невозможным использование веб-обозрения, так как оно не соответствует предлагаемому поведению согласно документации.
Кто-нибудь еще видел такое поведение? Есть ли обходные пути?
Я правильно понимаю, что это неправильно?
На данный момент мне кажется, что это ошибка, но я все еще плохо знаком с созданием ботов и платформой Facebook.