目次
ブラウザのサポート手順
デスクトップ
モバイル/タブレットPC
APIを使用するためのいくつかの要件
フォールバックを提供することをお勧めします
要約します

Web Share APIの使用方法

Apr 20, 2025 am 10:34 AM

Web Share APIの使用方法

AndroidのChrome 61が最初にWeb共有APIを起動したため、不明瞭になったようです。実際、WebサイトまたはWebアプリケーション(リンクや連絡先カードなど)から直接コンテンツを共有するときに、デバイスのネイティブ共有ダイアログ(Safariを使用する場合はデスクトップ)をトリガーする方法を提供します。

ユーザーはすでにネイティブの方法でWebページのコンテンツを共有できますが、ブラウザメニューでオプションを見つける必要があります。それでも、共有コンテンツを制御できません。このAPIの導入により、開発者はユーザーデバイスでネイティブコンテンツ共有機能を活用することにより、アプリケーションまたはWebサイトに共有機能を追加できます。

この方法には、従来の方法よりも多くの利点があります。

  • ユーザーは、DIYの実装にある可能性のある限られた数のオプションよりも、より広範なコンテンツ共有オプションを持っています。
  • さまざまなソーシャルプラットフォームからサードパーティのスクリプトをキャンセルすることにより、ページの読み込み時間を短縮できます。
  • さまざまなソーシャルメディアサイトや電子メールに一連のボタンを追加する必要はありません。デバイスのネイティブ共有オプションは、1つのボタンでトリガーされます。
  • ユーザーは、事前定義されたオプションに限定されることなく、デバイスで優先される共有ターゲットをカスタマイズできます。

ブラウザのサポート手順

APIの仕組みについて詳しく説明する前に、ブラウザサポートの問題を解決しましょう。正直に言うと、ブラウザのサポートは現在理想的ではありません。 AndroidとSafari(デスクトップとiOS)のChromeでのみ動作します。

このブラウザは、Caniuseのデータをサポートしています。これには詳細が含まれています。番号は、ブラウザがこのバージョン以降でこの機能をサポートしていることを示しています。

デスクトップ

モバイル/タブレットPC

しかし、これに落胆しないでください、あなたのウェブサイトにこのAPIを採用しないでください。ご覧のとおり、ブラウザへのフォールバックをサポートしていないことは非常に簡単です。

APIを使用するためのいくつかの要件

独自のWebプロジェクトでこのAPIを採用する前に、次のことが2つあります。

  • あなたのウェブサイトはhttpsを介して提供する必要があります。ローカル開発のために、APIはLocalHostでサイトが実行されたときにも機能します。
  • 乱用を防ぐために、APIはクリックイベントなどの特定のユーザーアクションに応じてのみトリガーできます。

このAPIの使用方法を示すために、基本的に自分のWebサイトと同じように機能するデモを準備しました。これがそれがどのように見えるかです:

現在、[共有]ボタンをクリックした後、コンテンツを共有するためのいくつかのオプションを表示するダイアログボックスが表示されます。これが私たちがこれを達成するのに役立つコードの一部です:

 <code>shareButton.addEventListener('click', event => { shareDialog.classList.add('is-open'); });</code>
ログイン後にコピー

先に進み、この例をWeb共有APIを使用して変換しましょう。以下に示すように、最初にすべきことは、APIがユーザーのブラウザによって実際にサポートされているかどうかを確認することです。

 <code>if (navigator.share) { // 支持Web 共享API } else { // 回退}</code>
ログイン後にコピー

Web共有APIを使用することはnavigator.share()メソッドを呼び出し、次のフィールドの少なくとも1つを含むオブジェクトを渡すのと同じくらい簡単です。

  • url :共有するURLを表す文字列。これは通常、ドキュメントURLですが、必ずしもそうではありません。 Web共有APIを介してURLを共有できます。
  • title :共有されるタイトルを表す文字列、通常はdocument.title
  • text :含めたいテキスト。

実際のアプリケーションでは次のようになります。

 <code>shareButton.addEventListener('click', event => { if (navigator.share) { navigator.share({ title: 'WebShare API Demo', url: 'https://codepen.io/ayoisaiah/pen/YbNazJ' }).then(() => { console.log('Thanks for sharing!'); }) .catch(console.error); } else { // 回退} });</code>
ログイン後にコピー

この時点で、サポートされているブラウザで[共有]ボタンをクリックすると、ネイティブセレクターがユーザーがデータを共有できるすべての可能なターゲットをポップアップします。目標は、ソーシャルメディアアプリ、電子メール、インスタントメッセージング、テキストメッセージ、またはその他の登録された共有ターゲットです。

APIは約束に基づいているため、 .then()メソッドを添付して共有成功したメッセージを表示し、 .catch()を使用してエラーを処理できます。実際のシナリオでは、次のコードスニペットを使用して、ページのタイトルとURLを取得することをお勧めします。

 <code>const title = document.title; const url = document.querySelector('link[rel=canonical]') ? document.querySelector('link[rel=canonical]').href : document.location.href;</code>
ログイン後にコピー

URLの場合、最初にページに正規のURLがあるかどうかを確認し、その場合はそのURLを使用します。それ以外の場合は、 document.locationからhrefを取得します。

フォールバックを提供することをお勧めします

Web共有APIをサポートしていないブラウザでは、これらのブラウザーのユーザーがまだ共有オプションを取得できるように、フォールバックメカニズムを提供する必要があります。

私たちの場合、コンテンツを共有するオプションがいくつかあるポップアップダイアログがあり、デモのボタンは実際にはどこにもリンクされていません。ただし、サードパーティのスクリプトなしでウェブページを共有するために独自のリンクを作成する方法を知りたい場合は、Adam Cotiの記事は開始するのに最適な場所です。

私たちがやりたいのは、Web共有APIをサポートしていないブラウザーのユーザーにフォールバックダイアログを表示することです。共有ダイアログをelseブロックに開くコードを移動するのと同じくらい簡単です。

 <code>shareButton.addEventListener('click', event => { if (navigator.share) { navigator.share({ title: 'WebShare API Demo', url: 'https://codepen.io/ayoisaiah/pen/YbNazJ' }).then(() => { console.log('Thanks for sharing!'); }) .catch(console.error); } else { shareDialog.classList.add('is-open'); } });</code>
ログイン後にコピー

これで、ユーザーが使用するブラウザに関係なく、すべてのユーザーがカバーされています。共有ボタンが2つのモバイルブラウザでどのように動作するかの比較を示します。1つはWeb共有APIをサポートし、もう1つは次のことをサポートしません。

試してみてください! Web共有とサポートされていないブラウザをサポートするブラウザを使用します。上記のデモに似ているはずです。

要約します

これは、Web共有APIについて知る必要があるほぼすべての基本をカバーしています。ウェブサイトに実装することにより、訪問者はさまざまなソーシャルネットワーク、連絡先、その他のネイティブアプリケーションを通じてコン​​テンツをより簡単に共有できます。

また、WebアプリケーションがプログレッシブWebアプリケーションのインストール基準を満たし、ユーザーのホーム画面に追加されている場合、共有ターゲットとして追加できることも注目に値します。これは、Google開発者のWeb共有ターゲットAPIについて読むことができる機能です。

ブラウザのサポートはギザギザですが、フォールバックは簡単に実装できます。そのため、より多くのWebサイトが採用されていない理由はないと思います。このAPIについて詳しく知りたい場合は、こちらをご覧ください。

Web共有APIを使用しましたか?コメントであなたの経験を共有してください。

以上がWeb Share APIの使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Googleフォント変数フォント Googleフォント変数フォント Apr 09, 2025 am 10:42 AM

Google Fontsが新しいデザイン(ツイート)を展開したようです。最後の大きな再設計と比較して、これははるかに反復的です。違いをほとんど伝えることができません

HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 Apr 11, 2025 am 11:29 AM

プロジェクトにカウントダウンタイマーが必要だったことはありますか?そのようなことのために、プラグインに手を伸ばすのは自然なことかもしれませんが、実際にはもっとたくさんあります

HTMLデータ属性ガイド HTMLデータ属性ガイド Apr 11, 2025 am 11:50 AM

HTML、CSS、およびJavaScriptのデータ属性について知りたいと思っていたことはすべて。

SASSをより速くするための概念の証明 SASSをより速くするための概念の証明 Apr 16, 2025 am 10:38 AM

新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

SVGでタータンパターンを生成する静的サイトを作成する方法 SVGでタータンパターンを生成する静的サイトを作成する方法 Apr 09, 2025 am 11:29 AM

タータンは、スコットランド、特にファッショナブルなキルトに通常関連する模様のある布です。 Tartanify.comでは、5,000を超えるTartanを集めました

WordPressテーマでVueコンポーネントを構築する方法 WordPressテーマでVueコンポーネントを構築する方法 Apr 11, 2025 am 11:03 AM

インラインテンプレートディレクティブにより、既存のWordPressマークアップに対する進行性の強化として、リッチVUEコンポーネントを構築できます。

PHPはテンプレートのA-OKです PHPはテンプレートのA-OKです Apr 11, 2025 am 11:04 AM

PHPテンプレートは、多くの場合、サブパーコードを促進するために悪いラップを取得しますが、そうである必要はありません。 PHPプロジェクトが基本を実施する方法を見てみましょう

SASSをプログラミングして、アクセス可能な色の組み合わせを作成します SASSをプログラミングして、アクセス可能な色の組み合わせを作成します Apr 09, 2025 am 11:30 AM

私たちは常にWebをよりアクセスしやすくしたいと考えています。色のコントラストは単なる数学なので、SASSはデザイナーが見逃したかもしれないエッジケースをカバーするのに役立ちます。

See all articles