我遇到了一个非常有趣的问题,其中navigator.share()在抓取操作之外运行良好,但在内部运行不正常。
作品:
navigator.share({title: '1 Test title', text: '1 Test text'})
不起作用:
fetch('https://api.github.com/orgs/nodejs').then(r => r.json().then(d => {
navigator.share({title: '2 Test title', text: '2 Test text'})
}))
编辑:我目前正在IOS Safari和Chrome上对其进行测试。
答案 0 :(得分:0)
我认为问题来自此要求:
必须响应用户操作(例如单击)来调用它。通过onload处理程序调用它是不可能的。 (https://web.dev/web-share/)
如果您直接通过点击事件进行分享,那似乎还可以。如果您在回调/承诺后共享,则不行-如果通过单击事件(至少在iOS上)调用了此promise /回调函数,则为事件。浏览器应该在调用堆栈中看到用户操作。
我也遇到了这个问题。我认为它的行为更像是错误而不是功能,因为它阻止了动态共享的可能性。
解决方案:要共享的数据必须在实际共享时可用。因此,您可能需要显示另一个按钮或其他内容来共享您获取的数据。