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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Matsue Kenta
September 10, 2022
0
2.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
330
Bitrise × XCTest × Codecov
matsuei
0
93
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
200k
RailsConf 2023
tenderlove
30
1.4k
The Limits of Empathy - UXLibs8
cassininazir
1
270
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
240
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
240
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Ruling the World: When Life Gets Gamed
codingconduct
0
180
Deep Space Network (abreviated)
tonyrice
0
93
Technical Leadership for Architectural Decision Making
baasie
3
300
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Leo the Paperboy
mayatellez
4
1.5k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
79
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