iOS Facebook Messenger, автоматически закрывать ссылку после ее открытия и выполнения задачи

Используя приложение iOS Facebook Messenger на моем iPad, я создаю бота, который отправит пользователю ссылку на медиаплеер.

После того, как пользователь щелкнул ссылку, он открывает встроенную ссылку в приложении Facebook Messenger (по крайней мере, это поведение iPad). В конце воспроизведения мультимедиа я бы хотел автоматически закрыть окно встроенного браузера и вернуть пользователя в текущий разговор.

Когда я пытаюсь и делаю window.close() это не закрывает встроенное окно браузера, которое открывается в iPad Facebook Messenger. Есть ли другой способ закрыть окно браузера Facebook?

1 ответ

Широко поддерживается

Метод закрытия расширений Facebook Messenger является наиболее совместимым способом сделать это. На мобильном телефоне он закрывает веб-просмотр, на рабочем столе закрывает вкладку (веб-просмотры открываются в новых вкладках на настольном мессенджере).

Во-первых, внесите в белый список свой домен, чтобы иметь возможность использовать расширения Messenger, используйте токен доступа для своего приложения. Используйте сгенерированный вами page_access_token для своего бота.

curl -X POST -H "Content-Type: application/json" -d '{
  "whitelisted_domains":[
    "https://petersfancyapparel.com"
  ]
}' "https://graph.facebook.com/v2.6/me/messenger_profile?access_token=PAGE_ACCESS_TOKEN"

Загрузите Messenger SDK на страницу веб-просмотра с видео

<script>
(function(d, s, id){
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) {return;}
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.com/en_US/messenger.Extensions.js";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'Messenger'));
</script>      

Затем добавьте прослушиватель событий в элемент video, чтобы вызвать функцию закрытия браузера.

<video src="video.ogv" id="myVideo">
  video not supported
</video>

<script type='text/javascript'>
    document.getElementById('myVideo').addEventListener('ended',myHandler,false);
    function myHandler(e) {
       MessengerExtensions.requestCloseBrowser(function success() {

      }, function error(err) {

      });
    }
</script>

только для iOS

Быстрый и грязный IOS единственный способ состоит в том, чтобы сделать перенаправление на https://www.messenger.com/closeWindow/?image_url=IMAGE_URL&display_text=DISPLAY_TEXT который показывает указанное изображение и текст перед тем, как закрыть окно. Документы по этому

Для этого вы бы сделали

window.replace('https://www.messenger.com/closeWindow/?image_url=IMAGE_URL&display_text=DISPLAY_TEXT')
Другие вопросы по тегам