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
Universal Linksの挙動を知る
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
hira
November 19, 2024
Technology
2
140
Universal Linksの挙動を知る
食べログ x Sansan モバイル勉強会 LT
hira
November 19, 2024
Tweet
Share
More Decks by hira
See All by hira
ARKitを触りながら振り返る
elu697
0
1.2k
Other Decks in Technology
See All in Technology
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
10
74k
デザインもAIに任せる!iPhoneで行うiOS開発
zozotech
PRO
0
290
量子クラウドシステムと運用
oqtopus
0
180
xDS を活用したサービスディスカバリーで実現するブランチ別 QA 環境の構築手法
knwoop
1
160
意志を実装するアーキテクチャモダナイゼーション
nwiizo
3
940
生成AIで始める業務改革 - 製造業編 in 福島 -
daikikanemitsu
2
600
30分でわかる「ネットワーク図の描き方入門」/infraengbooks56
corestate55
1
340
(技術的には)社内システムもOKなブラウザエージェントを作ってみた!
har1101
1
460
あすけん_Developers_Summit_2026_-_Vibe_Coding起点での新機能開発で__あすけん_が乗り越えた壁.pdf
iwahiro
0
130
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
94k
生成AIの研究活用_AILab2025研修
cyberagentdevelopers
PRO
11
5.2k
新規事業開発でのAWS活用
amixedcolor
1
180
Featured
See All Featured
The Language of Interfaces
destraynor
162
26k
Navigating Weather and Climate Data
rabernat
0
120
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
230
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
120
Designing Powerful Visuals for Engaging Learning
tmiket
0
250
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
120
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
79
Information Architects: The Missing Link in Design Systems
soysaucechin
0
800
It's Worth the Effort
3n
188
29k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
61
Transcript
Hirayama (elu697) Universal Linksの挙動を知る
Hirayama (elu697) 千葉県生まれ神奈川育ち 2016年からiOSアプリ開発 2022年からSansan株式会社でSansan-iOSアプリ開発 最近はCSIRTとしてプロダクトセキュリティ業務も開始 About 99年生まれ, 高専, CS,
ネットワーク, セキュリティ, 旅行, バイク, 車, カメラ My keywords
こんな時どうするか
配信サービスを閲覧中 配信動画をタップしたら 動画視聴用アプリを起動 Web閲覧中に特定のコンテンツを アプリで開きたい
https://developer.apple.com/documentation/technotes/tn3155-debugging-universal -links#Test-universal-links-behavior ドメインが同じだと ページ内ナビゲーションとなる サブドメインを使えば回避できるよ
example.com/feed を閲覧中 app.example.com/video/123 を開く "TEAMID.com.example.app" 動画視聴用アプリを起動
複数のアプリになっても
配信サービスを閲覧中 配信動画をタップしたら 配信ボタンをタップしたら 配信用アプリを起動 動画視聴用アプリを起動 開くページによって 起動するアプリを分けたい
{ "applinks": { "apps": [], "details": [ { "appID": "TEAMID.com.example.app",
"paths": [ "/video/*", ] } ] } } 動画視聴用アプリを起動 app.example.com のAASA 配信用アプリを起動 live.example.com の AASA { "applinks": { "apps": [], "details": [ { "appID": "TEAMID.com.example.live", "paths": [ "/stream/*", ] } ] } }
example.com/feed を閲覧中 app.example.com/video/123 を開く live.example.com/stream を開く "TEAMID.com.example.live" 配信⽤アプリを起動 "TEAMID.com.example.app" 動画視聴⽤アプリを起動
ではこう言う時は 実際の事例
Eightデジタル名刺ページを開く Eightを起動して デジタル名刺を開く Eightが入っていなかったら Sansanを起動して デジタル名刺を開く アプリに優先度をつけて起動したい
https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalL inks.html#//apple_ref/doc/uid/TP40016308CH12SW1 リストの順序は、システムが処理する際の順序になるよ
{ "applinks": { "details": [ { "appIDs": [ "2325B398HM.net.8card.eight", #
Eightアプリ "69JY2G46CE.com.sansan" # Sansanアプリ ], "components": [ { "/": "virtual_cards/*" } ] } ] } } AASA ※ appIDは誰でも見ることはできてしまうため、直接掲載しています
8card.net/virtual_cards/123 Eightデジタル名刺ページを開く “2325B398HM.net.8card.eightˮ Eightを起動して デジタル名刺を開く “69JY2G46CE.com.sansanˮ Eightが入っていなかったら Sansanを起動して デジタル名刺を開く
🎉
ではなかった
デジタル名刺の受け取り手段 ・URLのタップ ・QRコードのスキャン ・NFCカードMy Eight Card)のスキャン
デジタル名刺の受け取り手段 ・URLのタップ → ✅ 期待通りの動作 ・QRコードのスキャン → 🫠 ・NFCカードMy Eight
Card)のスキャン → 🫠 URLを開く手段によって挙動が異なる
URLを開く手段によって挙動が異なる 挙動: URLタップ 1. ・タップした場合、 AASAの優先度順に基づいてアプリが起動する。 (※ ˮ2ˮの操作で記憶されている場合、その選択肢で開かれる ) 2.
・ロングタップをした場合、 UIMenuが表示されアプリまたは Safariで開くことができる。 ロングタップ操作によってSafariで開いたユーザーが、URLをタップしてもアプリが開かない 事象に遭遇する可能性がある。
URLを開く手段によって挙動が異なる 挙動: QRコードスキャン 1. ・標準カメラの場合、黄色のリンクボタンを押すことで AASAの優先度に基づいたアプリ が起動する。 (ˮ2ˮの操作によって記憶されている場合はそちらが起動する ) 2.
・標準カメラで右下 QRボタンを押すと、 UIMenuが表示されリンクを開く手段を選択でき る。 ・複数のアプリが存在する場合 、開くアプリの選択肢が下側に表示され、選択したアプリ は記憶される。 3. ・3rdパーティアプリの場合、実装方法にもよるが openURL によって開かれると URL タップと同様の挙動となる。 ・URLロングタップによるユーザー操作が記憶されている場合、その選択が利用される。
URLを開く手段によって挙動が異なる 挙動: NFCスキャン 1. ・読み込んだ際にバナーに開くアプリが表示される。 ・URLに関連するアプリがない場合 : Safariで開かれる ・URLに関連するアプリが 1つある場合
: 関連アプリで開かれる 2. ・URLに関連するアプリが 2つ以上ある場合 : 選択ダイアログが表示され る。 ・AASAに記述される優先度が高いものが上の選択肢に表示される。
起動先度付けができていない
https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalL inks.html#//apple_ref/doc/uid/TP40016308CH12SW1 リストの順序は、システムが処理する際の順序になるよ 優先度とは一言も言っていなかった
システムの挙動を理解して プロダクト開発をしていきましょう
Thanks.
ぜひ懇親会で弊社社員と デジタル名刺交換をしてみてください!