Navigator: canShare() 方法
canShare()
是 Navigator
接口的一个方法,如果等效的调用 navigator.share()
会成功,则返回 true
。
如果数据无法验证,则该方法返回 false
。数据可能无效的原因包括
data
参数已省略或仅包含具有未知值的属性。请注意,用户代理无法识别的任何属性都会被忽略。- URL 格式错误。
- 指定了文件,但实现不支持文件共享。
- 共享指定的数据会被用户代理视为“恶意共享”。
Web 共享 API 受 web-share 权限策略的限制。如果支持权限但尚未授予,则 canShare()
方法将返回 false
。
语法
js
canShare()
canShare(data)
参数
返回值
如果指定的 data
可以使用 Navigator.share()
共享,则返回 true
,否则返回 false
。
示例
发送 MDN URL
此示例使用 navigator.canShare()
检查 navigator.share()
是否可以共享指定的数据。
HTML
HTML 只是创建一个段落,用于显示测试结果。
html
<p class="result"></p>
JavaScript
js
let shareData = {
title: "MDN",
text: "Learn web development on MDN!",
url: "https://mdn.org.cn",
};
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
。
以下代码演示了如何验证数据属性是否受支持。
js
// 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://mdn.org.cn",
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.
}
规范
规范 |
---|
Web 共享 API # canshare-data-method |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。