Navigator: метод canShare()
Ограниченная доступность
Эта функция не является базовой, так как она не работает во всех широко используемых браузерах.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS), в некоторых или всех поддерживающих браузерах.
Метод canShare() интерфейса Navigator возвращает true, если эквивалентный вызов navigator.share() будет успешным.
Метод возвращает false в случае, если данные нельзя валидировать. Причины невалидности данных включают:
- Параметр
dataопущен или содержит только свойства с неизвестными значениями. Обратите внимание, что любые свойства, не распознаваемые пользовательским агентом, игнорируются. - URL имеет неправильный формат.
- Указаны файлы, но реализация не поддерживает совместное использование файлов.
- Пользовательский агент определит указанные данные как «враждебное совместное использование».
API для совместного использования веб-контента (Web Share API) ограничен политикой разрешений web-share. Метод canShare() вернёт false если разрешение поддерживается, но не предоставлено.
Синтаксис
canShare() canShare(data)
Параметры
dataНеобязательно-
Объект, определяющий данные для совместного использования. Обычно этот объект с такими же свойствами передаётся в
navigator.share(), если этот вызов возвращаетtrue.Свойства, неизвестные пользовательскому агенту, игнорируются; данные для совместного использования оцениваются только по свойствам, понятным пользовательскому агенту. Все свойства необязательны, но должно быть указано хотя бы одно известное свойство данных, в противном случае метод вернёт
false.Возможные значения:
urlНеобязательно-
Строка, представляющая URL, который будет разделен.
textНеобязательно-
Строка, представляющая текст, который будет разделен.
titleНеобязательно-
Строка, представляющая заголовок, который будет разделен.
filesНеобязательно-
Массив объектов
File, представляющих файлы, которые будут разделены.
Значение результата
Возвращает true , если указанные data могут быть разделены с помощью Navigator.share(), в противном случае false.
Примеры
Отправка URL MDN
Пример использует navigator.canShare() для проверки возможности navigator.share() для совместного использования указанных данных.
HTML
HTML просто создаёт абзац для отображения результата проверки.
<p class="result"></p>
JavaScript
let shareData = {
title: "MDN",
text: "Learn web development on MDN!",
url: "https://developer.mozilla.org",
};
const resultPara = document.querySelector(".result");
if (!navigator.canShare) {
resultPara.textContent = "navigator.canShare() not supported.";
} else if (navigator.canShare(shareData)) {
resultPara.textContent =
"navigator.canShare() supported. We can use navigator.share() to send the data.";
} else {
resultPara.textContent = "Specified data cannot be shared.";
}
Результат
В поле ниже должно быть указано, поддерживается ли navigator.canShare() в данном браузере, и если да, то можно ли использовать navigator.share() для совместного использования указанных данных:
Пример проверки возможности
Этот метод проверяет, является ли определённое свойство данных допустимым и разрешённым для совместного использования. Если используется единственное свойство data, оно вернёт true только в том случае, если это свойство допустимо и разрешено для совместного использования на платформе.
Код ниже демонстрирует проверку поддержки свойства данных.
// Feature that may not be supported
let testShare = { someNewProperty: "Data to share" };
// Complex data that uses new key
const shareData = {
title: "MDN",
text: "Learn web development on MDN!",
url: "https://developer.mozilla.org",
someNewProperty: "Data to share",
};
// Test that the key is valid and supported before sharing
if (navigator.canShare(testShare)) {
// Use navigator.share() to share 'shareData'
} else {
// Handle case that new data property can't be shared.
}
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
canShare |
9381–93Поддерживается только на Windows. |
96 | 14 | 75 | 96 | 54 | 14 | 11.0 | Нет | ||
data_files_parameter |
89 | 81 | Нет | 75 | 14 | 76 | Нет | 54 | 14 | 11.0 | Нет |
data_text_parameter |
89 | 81 | Нет | 75 | 14 | 76 | Нет | 54 | 14 | 11.0 | Нет |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Navigator/canShare