navigator.share()
share() は Navigator インターフェイスのメソッドで、テキスト、URL、ファイルなどのデータを共有するために、端末のネイティブ共有メカニズムを呼び出します。利用できる共有ターゲットは機器によって異なりますが、クリップボード、連絡先やメールアプリケーション、ウェブサイト、Bluetooth などが含まれる場合があります。
このメソッドは Promise を undefined で解決します。 Windows では、これは共有ポップアップが起動されたときに発生し、Android では、データが共有ターゲットに正常に渡されたときにプロミスが解決されます。
ウェブ共有 API は、web-share 権限ポリシーで制限されます。 share() メソッドは、その権限に対応してはいるが許可されていない場合に例外を発生させます。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| 128 | 93 | 71 | 12.1 | 61 | 12.2 | |
| HTML 属性 | ||||||
allow (web-share) | 86 | 86 | 81 | | 86 | |
| DOM API | ||||||
| canShare() は Navigator インターフェイスのメソッドで、同等の navigator.share() の呼び出しが成功するようであれば true を返します。 | 128 | 93 | 96 | 14 | 75 | 14 |
canShare (data files parameter) data.files`パラメータ | 89 | 81 | | 14 | 76 | 14 |
canShare (data text parameter) data.text`パラメータ | 89 | 81 | 96 | 14 | 76 | 14 |
share (data files parameter) data.files`パラメータ | 89 | 81 | | 14 | 76 | 14 |
share (data text parameter) data.text`パラメータ | 89 | 81 | 71 | 14 | 76 | 14 |
| その他 | ||||||
web-share 実験的 HTTP の Permissions-Policy ヘッダーにおける web-share ディレクティブは、現在の文書がウェブ共有 API の Navigator.share メソッドを使用して、テキスト、リンク、画像、その他のコンテンツをユーザーが選択した任意の宛先にシェアすることを許可するかどうかを制御します。 | 88 | 88 | | | 88 | |
- このブラウザでは部分的にしか実装されていません
- このバージョンで機能が削除されました (128)
- ChromeOSとWindowsでのみサポートされています。バグ40542648とバグ40729163を参照してください。
- このブラウザでは部分的にしか実装されていません
- このバージョンで機能が削除されました (93)
- Windowsのみ対応。
- ブラウザの実験的フラグを有効にする必要があります
- Firefoxは`web-share`パーミッションポリシーを認識しますが、`share()`メソッドをサポートしていないバージョンのFirefoxでは効果がありません。
- このブラウザでは部分的にしか実装されていません
- このバージョンで機能が削除されました (128)
- ChromeOSとWindowsでのみサポートされています。バグ40542648とバグ40729163を参照してください。
- このブラウザでは部分的にしか実装されていません
- このバージョンで機能が削除されました (93)
- Windowsのみ対応。
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
基本構文
share(data) 実務での使いどころ
-
navigator.share() の活用
share() は Navigator インターフェイスのメソッドで、テキスト、URL、ファイルなどのデータを共有するために、端末のネイティブ共有メカニズムを呼び出します。
注意点
- 一部のブラウザでのみ対応。使用前にブラウザサポートを確認すること。
実装メモ
- 一部の API はセキュアコンテキスト (HTTPS) やユーザー操作起点を必要とする。利用前に要件を確認すること。