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.9k
広がれ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
260
Bitrise × XCTest × Codecov
matsuei
0
83
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
20
1.1k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Music & Morning Musume
bryan
46
6.2k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
120
A Tale of Four Properties
chriscoyier
156
23k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
10 Git Anti Patterns You Should be Aware of
lemiorhan
654
59k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
A Philosophy of Restraint
colly
203
16k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
The World Runs on Bad Software
bkeepers
PRO
65
11k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
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