新芽の観察日記

業界歴がそこそこになるWebエンジニア 情報発信するぞ

3分でChrome拡張を作ってQOLを上げる

背景

楽天市場、便利ですよね。みなさんもよく使われると思います。 我が家でも良く使われています。

https://www.rakuten.co.jp/

PCで商品を探し、スマホで決済したい

楽天市場には、スマホアプリで決済すると獲得ポイントが+0.5倍になるというキャンペーンがあります。

こちらのキャンペーン、商品が見やすいからとPCでショッピングをしていると、ついつい決済までそのまま行ってしまい、 購入完了後の画面を見てから「スマホアプリで購入すればよかった〜〜!!!」となりがちです。

それ、拡張機能でどうにかなるのでは?

以前からChrome拡張機能を作ってみたいと思っていたため、ぱぱっと作ってみることにしました。

要件は以下です。

  • 楽天市場でカートを表示した際、「スマホアプリで購入するように!!」と促すメッセージを表示する
  • なるべく気付きやすい形が良い
    • メッセージ表示中は注文確定ボタンなどが押せない

拡張機能を作っていく

Chrome拡張機能を作るにあたり、必要なファイル構成は以下です。

それでは作っていきましょう!

manifest.json

{
  "name": "alertRakuten",
  "version": "1.0.0",
  "manifest_version": 2,
  "description": "楽天市場にて、スマホアプリで決済することを促す機能",
  "content_scripts": [
    {
      "matches": ["https://basket.step.rakuten.co.jp/rms/mall/bs/cartall/*"],
      "js": ["content.js"]
    }
  ]
}

上記、適宜書くべきことを書きます。

今回注意すべきはcontent_scripts の部分。 matchesに、どのWebページで動作させたいかを書きます。

https://basket.step.rakuten.co.jp/rms/mall/bs/cartall/*

上記であれば、「cartall/ まで完全一致のURLであり、それ以降の文字列はなんでも良い」という意味になります。

これで楽天市場のカート画面で動作させることができそうです。

content.js

alert('スマホアプリから購入するんですよ〜〜');

上記manifest.jsonで記述したURLで発火するスクリプトを記述します。

スマホアプリで購入するように!!」と促すメッセージを表示する なるべく気付きやすい形が良い メッセージ表示中は注文確定ボタンなどが押せない

今回の用件であれば、js標準のalertで問題なさそうです。

実際に動かしてみる

用意するものが揃ったので、実際に動かしてみましょう。

1) 作成したcontent.jsとmanifest.jsonを同じフォルダにまとめる

f:id:kichijitsu_kichijoji:20211227121705p:plain

2) chrome://extensions/にアクセス
3) デベロッパーモード > ON
4) パッケージ化されていない拡張機能を読み込むを押下し、1で作成したフォルダをアップロード

f:id:kichijitsu_kichijoji:20211227121750p:plain

上記のように、自分のChromeに自作の拡張が読み込まれれば成功です!

外部へ公開する場合

今回の拡張機能は個人利用目的のため、Chrome拡張機能ストアに公開しませんが、公開したい方は別途手続きが必要です。

動作例

f:id:kichijitsu_kichijoji:20211227121802p:plain

無事、楽天市場の買い物かごを開いたタイミングでAlertを出すことに成功しました! これで毎月何かを購入するたびに「スマホで買えばよかった!!」と後悔することがなくなりそうです。

編集後記

今回は初めて拡張機能を作ってみました。Chrome上で動作させるまでの手順が全く難しくなく、 特別なドメイン知識も必要としないため、開発に全リソース割くことができて素敵ですね。 また何か作ってみようと思います!

参考文献

Chrome拡張の作り方 (超概要) - Qiita