Navigator: canShare() Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Die canShare() Methode der Navigator-Schnittstelle gibt true zurück, wenn der äquivalente Aufruf von navigator.share() erfolgreich wäre.
Die Methode gibt false zurück, wenn die Daten nicht validiert werden können. Gründe, warum die Daten ungültig sein könnten, beinhalten:
- Der
data-Parameter wurde weggelassen oder enthält nur Eigenschaften mit unbekannten Werten. Beachten Sie, dass alle Eigenschaften, die vom Benutzeragenten nicht erkannt werden, ignoriert werden. - Eine URL ist schlecht formatiert.
- Dateien sind angegeben, aber die Implementierung unterstützt das Teilen von Dateien nicht.
- Das Teilen der angegebenen Daten würde vom Benutzeragenten als "feindliches Teilen" angesehen.
Die Web Share API wird durch die web-share Berechtigungspolitik gesteuert.
Die canShare() Methode wird false zurückgeben, wenn die Berechtigung unterstützt wird, aber nicht erteilt wurde.
Syntax
canShare()
canShare(data)
Parameter
dataOptional-
Ein Objekt, das die zu überprüfenden Teilungsdaten definiert. Typischerweise wird ein Objekt mit den gleichen Eigenschaften an
navigator.share()übergeben, wenn dieser Aufruftruezurückgibt.Eigenschaften, die dem Benutzeragenten unbekannt sind, werden ignoriert; Teilungsdaten werden nur anhand der vom Benutzeragenten verstandenen Eigenschaften bewertet. Alle Eigenschaften sind optional, aber mindestens eine bekannte Dateneigenschaft muss angegeben werden, sonst gibt die Methode
falsezurück.Mögliche Werte sind:
urlOptional-
Ein String, der eine zu teilende URL darstellt.
textOptional-
Ein String, der den zu teilenden Text darstellt.
titleOptional-
Ein String, der den Titel darstellt, der geteilt werden soll.
filesOptional-
Ein Array von
File-Objekten, die die zu teilenden Dateien darstellen.
Rückgabewert
Gibt true zurück, wenn die angegebenen data mit Navigator.share() geteilt werden können, andernfalls false.
Beispiele
>Senden der MDN-URL
Das Beispiel verwendet navigator.canShare(), um zu überprüfen, ob navigator.share() die angegebenen Daten teilen kann.
HTML
Das HTML erstellt nur einen Absatz, in dem das Ergebnis des Tests angezeigt wird.
<p class="result"></p>
JavaScript
let shareData = {
title: "MDN",
text: "Learn web development on MDN!",
url: "https://big.rakal.top",
};
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.";
}
Ergebnis
Die Box unten sollte angeben, ob navigator.canShare() in diesem Browser unterstützt wird und, falls ja, ob wir navigator.share() verwenden können, um die angegebenen Daten zu teilen:
Beispiel zur Funktionsüberprüfung
Diese Methode überprüft, ob eine bestimmte Dateneigenschaft gültig und teilbar ist.
Wenn sie mit einer einzelnen data-Eigenschaft verwendet wird, gibt sie nur dann true zurück, wenn diese Eigenschaft gültig ist und auf der Plattform geteilt werden kann.
Der untenstehende Code zeigt, wie überprüft wird, dass eine Dateneigenschaft unterstützt wird.
// 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://big.rakal.top",
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.
}
Spezifikationen
| Specification |
|---|
| Web Share API> # canshare-data-method> |
Browser-Kompatibilität
Loading…