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
1.8k
広がれ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
250
Bitrise × XCTest × Codecov
matsuei
0
82
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
167
14k
4 Signs Your Business is Dying
shpigford
180
21k
Designing on Purpose - Digital PM Summit 2013
jponch
114
6.9k
The Straight Up "How To Draw Better" Workshop
denniskardys
231
130k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
25
650
Building a Scalable Design System with Sketch
lauravandoore
459
32k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Product Roadmaps are Hard
iamctodd
PRO
48
10k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
109
6.9k
How to name files
jennybc
77
99k
It's Worth the Effort
3n
183
27k
Fireside Chat
paigeccino
32
2.9k
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