还有其他人遇到过这个问题吗?我正在实现 Web Share API,以将共享按钮添加到页面上的多个列表中。该代码最初似乎工作正常,因为我可以单击任何“共享”按钮,对话框将正确显示。
但是,如果我关闭该对话框并尝试再次单击它,则会收到一条错误消息,提示“当前上下文中的用户代理或平台不允许该请求,可能是因为用户拒绝了权限。”
更奇怪的是,我在所有这些关于如何实现 Web Share API 的教程网站上都遇到了同样的行为(例如: https: //alligator.io/js/web-share-api/ - 尝试单击“分享我!”)在 iOS Safari 上,多次在页面中间放置“按钮。)
这是我的代码供参考:
const shareButtons = document.querySelectorAll('.share');
for (const button of shareButtons) {
button.addEventListener("click", async () => {
if (navigator.share) {
try {
await navigator.share({
url: button.getAttribute('data-url')
});
} catch (err) {
alert(err.message);
}
} else {
// fallback
}
});
}
Run Code Online (Sandbox Code Playgroud)
感谢我对此的任何见解 - 非常感谢