gpt4 book ai didi

iOS Facebook Messenger,打开并完成任务后自动关闭链接

转载 作者:可可西里 更新时间:2023-11-01 03:33:28 24 4
gpt4 key购买 nike

我正在使用 iPad 上的 iOS Facebook Messenger 应用构建一个机器人,它会向用户发送媒体播放器链接。

用户单击链接后,它会在 Facebook Messenger 应用程序内内联打开链接(至少这是 iPad 的行为)。在媒体播放结束时,我想自动关闭内联浏览器窗口并将用户返回到当前对话。

当我尝试执行 window.close() 时,不会关闭在 iPad Facebook Messenger 中打开的内联浏览器窗口。有没有其他方法可以关闭 Facebook 浏览器窗口?

最佳答案

广泛支持

Facebook Messenger Extension close 方法是最兼容的方法。在移动设备上它关闭 webview,在桌面上它将关闭选项卡(webviews 在桌面 Messenger 的新选项卡中打开)。

首先,将您的域列入白名单以便能够使用 Messenger Extensions,为您的应用使用访问 token 。使用您为机器人生成的 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"

在您的 webview 页面上加载视频的 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 之前简要显示指定的图像和文本窗口关闭。 Docs on this

你会这样做

window.replace('https://www.messenger.com/closeWindow/?image_url=IMAGE_URL&display_text=DISPLAY_TEXT')

关于iOS Facebook Messenger,打开并完成任务后自动关闭链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38382361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com