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 entsprechende Aufruf von navigator.share()
erfolgreich wäre.
Die Methode gibt false
zurück, wenn die Daten nicht validiert werden können. Gründe für ungültige Daten sind:
- Der
data
-Parameter wurde weggelassen oder enthält nur Eigenschaften mit unbekannten Werten. Beachten Sie, dass alle vom Nutzeragenten nicht erkannten Eigenschaften ignoriert werden. - Eine URL ist schlecht formatiert.
- Dateien sind angegeben, aber die Implementierung unterstützt keine Dateifreigabe.
- Das Teilen der angegebenen Daten würde vom Nutzeragenten als "feindliches Teilen" angesehen.
Die Web Share API wird durch die Berechtigungspolitik web-share eingeschränkt. Die Methode canShare()
gibt false
zurück, wenn die Berechtigung unterstützt, aber nicht gewährt wurde.
Syntax
canShare()
canShare(data)
Parameter
data
Optional-
Ein Objekt, das die zu testenden Freigabedaten definiert. Typischerweise wird ein Objekt mit den gleichen Eigenschaften an
navigator.share()
übergeben, wenn dieser Aufruftrue
zurückgibt.Eigenschaften, die dem Nutzeragenten unbekannt sind, werden ignoriert; Freigabedaten werden nur anhand der Eigenschaften bewertet, die der Nutzeragent versteht. Alle Eigenschaften sind optional, aber es muss mindestens eine bekannte Dateneigenschaft angegeben werden, sonst gibt die Methode
false
zurück.Mögliche Werte sind:
url
Optional-
Ein String, der eine zu teilende URL darstellt.
text
Optional-
Ein String, der zu teilenden Text darstellt.
title
Optional-
Ein String, der den zu teilenden Titel darstellt.
files
Optional-
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
Die MDN-URL senden
Das Beispiel verwendet navigator.canShare()
, um zu überprüfen, ob navigator.share()
die angegebenen Daten teilen kann.
HTML
Das HTML erstellt einfach 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://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.";
}
Ergebnis
Das folgende Feld 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 Feature-Überprüfung
Diese Methode prü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, ob 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://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.
}
Spezifikationen
Specification |
---|
Web Share API # canshare-data-method |