Web Share API
Web Share API 允许分享文字、链接、文件或其他内容到用户指定的分享目标
分享操作
使用 Navigator 接口上的 share() 方法分享内容
方法允许传递一组可选的分享内容,包括 title 字段;text 字段;url 字段;files 字段
方法返回一个 Promise
方法可能抛出 InvalidStateError 异常,若当前文档未处于活跃状态;或当前存在其他分享操作
方法可能抛出 NotAllowedError 异常,若当前未被授予 web-share 权限;或分享操作未因用户交互行为调用;或分享的文件因为隐私问题被拒绝
方法可能抛出 TypeError 异常,若校验分享数据失败
titletexturlfiles四个字段均为空仅存在
files字段且其为空数组用户代理实现不支持分享文件
用户代理确信任一分享的文件存在恶意行为
存在
url字段且解析 URL 失败存在
url字段且其协议不是可分享的协议类型,如 http https 等;或为不可分享的协议类型,如 file、ws、wss、javascript 或本地协议等
方法可能抛出 AbortError 异常,若用户代理无法获取到可用的分享目标;或用户退出选取分享目标过程
方法可能抛出 DataError 异常,若尝试启动分享目标失败;或传递分享数据失败
检测分享
使用 Navigator 接口上的 canShare() 方法检测内容能否被成功分享,传递的参数同 share() 方法,返回一个 boolean
通常在调用 share() 方法之前先行调用该方法以检测能否成功分享
若调用 share() 方法会成功,则 canShare() 方法一定返回 true;反之返回 false
权限策略
该 API 调用受到 web-share 权限策略的控制,可以通过 Permissions-Policy 响应头指定,或通过 <iframe> 标签的 allow 属性指定
默认为 self,即允许在当前上下文或内嵌的其他同源上下文中使用
类型
1  | interface Navigator {  | 

