Я пытаюсь реализовать функциональность Api Web Share в моем тестовом веб-приложении, но, похоже, я не могу это сделать.Это код:
const newVariable: any = navigator;
{newVariable && newVariable.share && <IconButton aria-label="Share" onClick={async (e) => {
try {
const id = await shareRepository.shareTrip(this.props.todolist)
const url = "https://something.com/share/" + id
await newVariable.share({
title: 'Check my todolist for ' + this.props.todolist.trip.departure + ' - ' + this.props.todolist.trip.arrival,
text: 'Check my todolist for ' + this.props.todolist.trip.departure + ' - ' + this.props.todolist.trip.arrival,
url: url,
})
} catch (error) {
alert(error)
}
}}>
<ShareIcon />
</IconButton>}
Каждый раз, когда я пытаюсь использовать Firefox и Safari для iOS, я получаю сообщение об ошибке:
NotAllowedError: запрос не разрешенпользовательским агентом или платформой в текущем контексте, возможно, из-за того, что пользователь отказал в разрешении.
Если в этих браузерах я пытаюсь поделиться чем-то с google.com, я получаю собственный диалог выбора, с которымприложение для обмена.
Я не могу понять, почему.На этой странице нет обсуждения о разрешении: https://developers.google.com/web/updates/2016/09/navigator-share
ОБНОВЛЕНИЕ:
в Chrome для Android работает просто отлично, в Firefox для Android не работает.В Chrome Firefox и Safari (которые, как я полагаю, используют все три механизма safari) работают только в том случае, если я передам ""
, что означает саму страницу, или "https://something.com/share/"
, он сломается, если я передам "https://something.com/share/"+id
: /