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')