Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
広がれSafari Web Extensions!Safari Web Extensions ...
Search
Matsue Kenta
September 10, 2022
0
2k
広がれSafari Web Extensions!Safari Web Extensions の始め方/iOSDC22
Matsue Kenta
September 10, 2022
Tweet
Share
More Decks by Matsue Kenta
See All by Matsue Kenta
Swift Charts で「良い感じ」に3変数を持つデータを表示するまでの軌跡
matsuei
0
270
Bitrise × XCTest × Codecov
matsuei
0
83
Featured
See All Featured
How GitHub (no longer) Works
holman
311
140k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.5k
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
Become a Pro
speakerdeck
PRO
26
5k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Agile that works and the tools we love
rasmusluckow
328
21k
Typedesign – Prime Four
hannesfritz
40
2.4k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Transcript
広がれSafari Web Extensions! Safari Web Extensions の始め方 kenta matsue iOSDC
2022 Day0 2022-09-10
所属 ディー・エヌ・エー 仕事 ブラウザアプリSkyLeap 最近欲しいモノ MAZDA CX-60 Twitter:
@base_front Github : matsuei
None
今日は別のブラウザのお話
None
Safari Web Extensions
目次 1. Safari Web Extensions 2. 基本の構成 3. 簡単なSafari Web
Extensionsを実装
1. Safari Web Extensions
1. Safari Web Extensions Safari における拡張機能 macOS 11 or iOS
15 以降で利用可能
1. Safari Web Extensions 基本的な仕組みは その他のブラウザと共通
1. Safari Web Extensions 何が出来るのか🧐
1. Safari Web Extensions ほぼ何でも出来る! (Javascriptで出来ることなら)
1. Safari Web Extensions アイデア次第で 可能性は無限大💪
2. 基本の構成
2. 基本の構成 Safari Extension App の テンプレートを使用して説明
2. 基本の構成 File→New→Project
2. 基本の構成
2. 基本の構成
2. 基本の構成 アプリ本体 拡張機能
2. 基本の構成 まずはビルドしてみる
2. 基本の構成 アプリ本体 拡張機能
2. 基本の構成 ディレクトリの中身を確認
2. 基本の構成
2. 基本の構成 拡張機能からのデータを Appで受け取る場所 (今回は割愛)
2. 基本の構成 拡張機能を管理する json
2. 基本の構成(manifest)
2. 基本の構成(manifest)
2. 基本の構成(manifest) background Webページの状態に関 係なく実行できる Javascriptを管理
2. 基本の構成(manifest) content_script Webページの読み込み時に 実行するJavascriptを管理 ★要素の操作が可能
2. 基本の構成(manifest) permissions 拡張機能に必要な許可 例:「activeTab」で 表示しているタブへの 操作が可能になる
2. 基本の構成 実行されるJavascript mainifestの修正が必要だが ファイル名の変更 ファイルの追加も可能
2. 基本の構成 background.js content.js
2. 基本の構成 background.js content.js sendMessage onMessage.addListener .then(response) sendResponse
3. 簡単なSafari Web Extensionsを実装
3. 簡単なSafari Web Extensionsを実装 今日のお題
3. 簡単なSafari Web Extensionsを実装 Wikipediaから Javascriptを使って タイトルを削除する 「Captain America」Wikipedia: The
Free Encyclopedia. Wikimedia Foundation, Inc, https://en.wikipedia.org/wiki/Captain_America
3. 簡単なSafari Web Extensionsを実装 まずはタイトルの要素を特定
3. 簡単なSafari Web Extensionsを実装 MacのSafariでWebInspectorを起動し タイトルの要素名を特定
3. 簡単なSafari Web Extensionsを実装
3. 簡単なSafari Web Extensionsを実装 Javascriptの修正をする 要素の削除を行いたいので content.jsを修正
3. 簡単なSafari Web Extensionsを実装
3. 簡単なSafari Web Extensionsを実装
3. 簡単なSafari Web Extensionsを実装 content.js の読み込み時には 要素の取得がまだ出来ないので シンプルなこの実装では
どうするか?🧐 3. 簡単なSafari Web Extensionsを実装
background.js content.js sendMessage onMessage.addListener .then(response) sendResponse 3. 簡単なSafari Web Extensionsを実装
3. 簡単なSafari Web Extensionsを実装 background.js のメッセージを 受け取ったタイミングで実行
3. 簡単なSafari Web Extensionsを実装 実行してみる!
3. 簡単なSafari Web Extensionsを実装 失敗…
3. 簡単なSafari Web Extensionsを実装 manifest を確認
3. 簡単なSafari Web Extensionsを実装 matches: [ "*://example.com/*" ]
怪しい 🧐
3. 簡単なSafari Web Extensionsを実装
3. 簡単なSafari Web Extensionsを実装
3. 簡単なSafari Web Extensionsを実装 成功👏
3. 簡単なSafari Web Extensionsを実装 実装のポイント 1. 実行タイミングに気をつけよう 2. 困ったらmanifestを確認しよう
3. 簡単なSafari Web Extensionsを実装 これで今日からあなたも Safari Web Extensionsを 実装出来ます👍
ご清聴ありがとうございました!
Appendix 今回のコード github.com/matsuei/SafariWebExtensionsDemo 実践的な実装をしたコード github.com/matsuei/NoSpoilerHelper