Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
The joy of Native Messaging
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
unvalley
July 28, 2026
38
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The joy of Native Messaging
2026/7/27 雑LT
unvalley
July 28, 2026
More Decks by unvalley
See All by unvalley
Plugin System in Rust based JavaScript / TypeScript Linters
unvalley
6
2.4k
Exploring ways to stay continuously involved with OSS
unvalley
3
4k
Building An Ephemeral Markdown Paper with AI
unvalley
3
1.3k
Thoughts and experiences on Rust and TypeScript
unvalley
2
450
Exploring Type-Informed Lint Rules in Rust based TypeScript Linters
unvalley
7
13k
Behind VS Code Extensions for JavaScript / TypeScript Linting and Formatting
unvalley
7
3.9k
Behind Biome
unvalley
11
4.7k
Biome is for JavaScripters
unvalley
4
1.2k
Better Unit Testing
unvalley
1
750
Featured
See All Featured
The Spectacular Lies of Maps
axbom
PRO
1
1k
The Invisible Side of Design
smashingmag
301
52k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
The SEO identity crisis: Don't let AI make you average
varn
0
560
4 Signs Your Business is Dying
shpigford
187
23k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Making Projects Easy
brettharned
120
6.8k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
350
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Designing for Performance
lara
611
70k
Transcript
Native Messagingの嬉しさ 雑LT @unvalley_ 1
Native Messaging - 「ユーザーのマシン上のアプリ」と「ブラウザ拡張」の間で、 メッセージ交換を可能にする技術 - 結構古くて、Chromeでは10年以上前から存在する Native App 他
2
(このLTでの)Native Messagingの嬉しさ ネイティブアプリ(特にLocal-First App)に ブラウザのコンテキストを与えられる 3
背景:内部リンク中心のドキュメントアプリをSwiftで作りたい で作りたい 4
欲しい機能:ウェブ上の記事をナレッジにしたい Native Messagingでいけそう 5
Webページ → Markdownにして加工 → ネイティブアプリ 1. 2. 3. ブラウザ拡張:@mozilla/readabilityで記事内容を抽出、.html→ .md化する
ブラウザ拡張からネイティブアプリ:Native Messagingでメッセージ送信 ネイティブアプリ:得られた .mdに対して内部リンクを適用。完了を返信 6
Native Messagingを使うときにやること 1. ブラウザ拡張:マニフェストの準備 - manifest.json に nativeMessaging権限を追加 2. ネイティブアプリ:アプリマニフェストのインストール
- ネイティブアプリを使える状態にして、アプリマニフェストを作成し1との 接続設定を書いて、OSごとの決められた場所に配置 3. ブラウザ拡張+ネイティブアプリ:メッセージ処理実装 - 拡張は sendNativeMessage などでJSONを送り、ネイティブアプリ はstdinでJSONを読みstdoutでレスポンスを返す 7
なぜこのケースでNative Messagingが必要なの? - Downloads APIやFile System Access APIでは、ネイティブアプリの処 理を挟めない -
localhostでもできるが、ポート管理やlocalサーバー常時起動が必要 8
Native Messagingはブラウザとネイティブアプリ間で色々できる セキュリティ(他人の実装) には気をつけながら楽しく使おう 終 9