MENU

JavaScript の navigator.clipboardが動かない落とし穴 SSL接続

navigator.clipboardのエラー画面

開発中のウェブアプリの機能に特定の文字列をコピーする機能を搭載する際に落とし穴にハマったので備忘録的に経緯を記載します。

開発機はMacでコードを書いて開発機でnpm run devで立ち上げたサーバーで確認します。

  • 開発機 OS:macOS Sonoma 14.5 ブラウザ:Chromeバージョン: 125.0.6422.141(Official Build) (arm64)
  • iPhone14 Pro Max OS: iOS 17.5.1 Safari
  • Galaxy S23 Ultra OS: Android 14 ブラウザ:Firefox126.0.1(Build# 2016023311), Chrome 125.0.6422.147

スマホからnavigator.clipboard.writetextを実行するとエラーが

クリップボードにコピーする機能の関数にはnavigator.clipboardを使っており、この部分を実行するとiPhoneとGalaxyともにエラーが出ました。開発機のChrome, Firefox共にエラーなく動いていたのでスマホのブラウザでは非対応なのかなと思っていましたが、MDNのサポートページを確認すると以下のような説明がありました。

Clipboard API を使用する

Clipboard API は、拡張機能から任意のデータをクリップボードに書き込むものです。この API を使用するには、manifest.json ファイルに "clipboardRead" または "clipboardWrite" というパーミッションを設定する必要があります。この API は安全なコンテキストでのみ利用可能であるため、http: ページで動作するコンテンツスクリプトからは使用できず、https: ページでのみ使用できます。

https://developer.mozilla.org/ja/docs/Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboard#clipboard_api_%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B

httpプロトコルでは使用できないため、httpsプロトコルである必要があるようです。私の環境では開発機と同じネットワークに繋いだスマートフォンから開発機のipアドレスに接続していたので当然SSLはありませんでした。
簡単に確認ができればと思っていたのですが、スマートフォンから動作確認をしたい場合にはSSLに対応したサーバーにアップロードして確認する必要がありますね。実際にサーバーにアップロードして確認をしたところエラーなく動作しました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

好きなこと、自分の経験したことなどを皆様に向けて発信できたらいいなと思ってブログを始めました。
好きなことは自作パソコン、Apple製品やAndroid端末やスマートウォッチなどを含むガジェット系、バイク、筋トレなどが好きです。
中学1年生の頃にパソコンとインターネットに興味を持ちました。中学生時代は自作パソコンにハマりました。
IT用語辞典に書いてあったユビキタスネットワークという言葉に興味を持ち、将来人々が手にもつ端末は一体どんな形をしているのかと考えて10代を過ごしました。
法学部在学中に家族が病気になり、看護師に興味を持ちました。
法学部卒業後に看護学部に入学し卒業後に総合病院・特養・訪問看護ステーションで働きました。
現在は看護小規模多機能型居宅介護施設併設の訪問看護ステーションで働いています。

コメント

コメントする

目次