PWA の Web Share Target(Android)の実測と落とし穴

一言まとめ

共有シートに PWA を出すには WebAPK が要り、Chrome でインストールした場合だけ動く。Android では `url` フィールドが空で URL は `text` に混ざるため、全フィールドを正規表現で走査する実装にする。

作成 · 更新 · #pwa#web-share-target#android#manifest
目次 6 sections
  1. 01 共有シートから届くフィールド
  2. 02 WebAPK が要る。Brave では出ない
  3. 03 share_target.action は配信先と同じ origin の絶対 URL にする
  4. 04 manifest を変えたら入れ直す
  5. 05 関連
  6. 06 更新履歴

調査時点: 2026-09。Android 実機(Chrome / Brave)で確認した内容。公開プロジェクト damjump(YouTube の共有からカラオケ検索へ飛ばす PWA)の実装で踏んだもの。

共有シートから届くフィールド#

Android の共有 Intent には URL 専用のフィールドがない。manifest の share_target.params と Intent の対応は次のとおり。

manifest の paramsAndroid Intent
titleIntent.EXTRA_SUBJECT
textIntent.EXTRA_TEXT
urlAndroid では基本的に空。URL は text(たまに title)に混ざる

したがって、どのフィールドに何が入るかに依存しない実装にする。title / text / url を全部連結し、正規表現で目的の URL を拾って ID を抜く。共有元アプリのバージョンで共有テキストの形式が変わっても壊れない。

YouTube の場合、対応すべき URL の形は youtu.be/ID / watch?v=ID / shorts/ID / live/ID / embed/ID に、m. music. サブドメインを掛け合わせたもの。

WebAPK が要る。Brave では出ない#

Web Share Target が OS に登録されるのは、PWA が WebAPK としてインストールされたときだけ。

  • Chrome の「アプリをインストール」で入れると共有シートに出る。
  • Brave で入れると出ない。ホーム画面のアイコンに Brave のバッジが付くのが目印で、これは Android が「ブラウザのショートカット」として扱っている印。WebAPK ではないので share_target が登録されず、共有元(ブラウザ版 YouTube / アプリ版 YouTube)を変えても出ない。
  • PWABuilder などで APK 化したものも share_target が効かないという報告がある。

共有シートに出ないときの切り分けは、まずアイコンにブラウザのバッジが付いているかを見る。

share_target.action は配信先と同じ origin の絶対 URL にする#

share_target.action は manifest の scope 内(同一 origin)でないと無効になる。Cloudflare Workers で wrangler deploy を素で打つと *.workers.dev に出るため、カスタムドメインを指した action が scope 外になる。配信先のカスタムドメインとビルド時の origin を揃えてから実機確認に進む。

origin がずれたままだと、共有シートに出ない原因が「WebAPK が作られていない」のか「action が scope 外」なのか切り分けられない。

相対パスで書くと出ないという報告もある(未検証。最初から絶対 URL で書いたため踏んでいない)。

manifest を変えたら入れ直す#

Android は manifest を強くキャッシュする。share_target を含む manifest を変更したら、PWA を一度アンインストールして入れ直す。

関連#

更新履歴#

  • 2026-09-12: 初版(ローカル調査ノート)
  • 2026-10-17: Wiki へ移植、概念ページとして再構成

出典

  1. https://developer.chrome.com/docs/capabilities/web-apis/web-share-target
  2. https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Manifest/Reference/share_target
  3. https://martin.hjartmyr.se/articles/pwa-web-share-target-android/
  4. https://github.com/brave/brave-browser/issues/40858

同じトピック — Web