У меня есть простая страница с некоторыми деталями, чьи действия я выполняю с помощью AJAX-запроса.
При успешном обратном вызове вызова AJAX я пытаюсь вызвать navigator.share
, что выдает ошибку:
NotAllowedError: Должен обрабатывать пользовательский жест для выполнения запроса на совместное использование.
Пример кода выглядит так:
$("#form-button").on('click', function (event) {
var ele = $(this);
event.preventDefault();
$.ajax({
// ...
dataType: "json",
data: { "foo": "bar" },
success: function (response) {
if (navigator.share) {
navigator.share({
title: response.text,
text: response.text,
url: response.href
}).then(function () {
alert('Successful share')
}).catch(function (error) {
alert('Error sharing: ' + error);
});
}
},
});
});
Голосование от Сайт разработчика Google заявляет:
... вы можете вызывать API только в ответ на действие пользователя, такое как щелчок (например, вы не можете вызвать navigator.share как часть загрузки страницы)
Это работает, если у меня нет вызова AJAX и я напрямую запускаю navigator.share
под событием click, но не когда я помещаю его в обратный вызов AJAX. Я надеялся, что API проверит цепочку событий.
Какие у меня есть альтернативы, чтобы заставить его работать? Я пытался удерживать фиктивную кнопку и вызывать щелчок.