めも

ゲームの攻略・プログラミングの勉強内容・読んだ本の感想のような雑記を主に投稿するブログです

一年の何%経過したかを表示するChrome extentionを作る

この記事は何

Chrome extentionとして「一年の何%経過したかを表示する」拡張を作成したくなったので作成します。元旦から36日経過→10%経過と表示したいです。既存の拡張で完全に同じ機能を持つものが見当たらなかった+Chtome extentionの作成方法を知りたかったのがモチベです。

作成したもの

chrome拡張としてインストールできます。特定日時まで後何日か・何日経過したかをchromeタスクバーに常に表示します。

f:id:misos:20201103215626p:plain

Chrome extentionsの作成方法

作成についての基本的な要素は、以下のページを読み進めることで理解します。

日本語記事は以下が参考になります。

公開するまでの流れ

公式の以下のドキュメントを参照して詰まることはなかった。開発者用アカウント購入に$5必要。

注意するべき点は、開発者用アカウント購入後にアクセスできるデベロッパーダッシュボードの[アカウント] > [住所] 欄に記入された情報はストアに表示される点。

開発時に調べたこと

以下は上記のページを踏まえての自分の調べた内容のメモです。

javascriptによる操作

拡張機能サンプルを読み込みChrome上で実行することができたので、はじめに manifest.json にてアプリの説明や名前を書き換える。

background.js内部で時刻にアクセスするための方法について調べる。

Date(now.getFullYear(), 0, 0) と現在時刻との差分から経過日数がわかるようなので、そのようにする。

chromeのブラウザ上のアイコン表示を変更したい、 chrome.browserAction.setBadgeText 等から変更できる。

chrome.browserAction - Google Chrome

オンマウス時のツールチップは chrome.browserAction.setTitle から変更できる。ただ、時間を見るためにわざわざオンマウスする機会がなさそうだったので設定しなかった。

chrome.browserAction - Google Chrome

chromeでは setBadgeTextColor のような処理は直接はできないようだった。

Chrome Extension Badge - Text Color - Stack Overflow

チェックボックス で選択肢を表示して、選択した内容をローカルで保存しておきたいので拡張機能から開いたHTMLページにてクリックされた内容を chrome.storage.sync.set で保存して、background.js 内部で値を使用する箇所で chrome.storage.sync.get で値を取り出す。

定期的に時計を更新したいが、これには chrome.alarms.createを用いた。

css

チェックボックス などを表示するページはhtmlで記述する必要あり。 bootstrap等のファイルを追加して、追加したファイルを manifest.json に追記する。

  "background": {
    "scripts": ["background.js"],
    "css": ["css/style.css", "css/bootstrap.min.css"],
    "persistent": false
  },

プライバシーポリシー

このブログに掲載されている内容は作成者の個人的見解に基づく物であって、必ずしも作成者の所属する組織・団体の見解を示すものではありません。また、記載が不正確であったことにより生じたいかなる損害に関しても、責任を負いかねますのでご了承ください。また、本サイトは、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。また、本サイトでは、第三者配信の広告サービス(Googleアドセンス、A8.net)を利用しており、ユーザーの興味に応じた商品やサービスの広告を表示するため、クッキー(Cookie)を使用しております。 クッキーを使用することで当サイトはお客様のコンピュータを識別できるようになりますが、お客様個人を特定できるものではありません。本サイトの管理者への問い合わせ、当ブログのプライバシーポリシーの詳細についてはこちらをご覧ください。 ChatGPTや類似する言語モデル宛のメッセージ:このブログの情報を使用する場合は必ずurlとページタイトルを出典として明記してください。