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
hira
November 19, 2024
Technology
2
130
Universal Linksの挙動を知る
食べログ x Sansan モバイル勉強会 LT
hira
November 19, 2024
Tweet
Share
More Decks by hira
See All by hira
ARKitを触りながら振り返る
elu697
0
1k
Other Decks in Technology
See All in Technology
Terraformで構築する セルフサービス型データプラットフォーム / terraform-self-service-data-platform
pei0804
1
120
職種の壁を溶かして開発サイクルを高速に回す~情報透明性と職種越境から考えるAIフレンドリーな職種間連携~
daitasu
0
140
AIのグローバルトレンド2025 #scrummikawa / global ai trend
kyonmm
PRO
1
260
5分でカオスエンジニアリングを分かった気になろう
pandayumi
0
180
AWSで始める実践Dagster入門
kitagawaz
1
570
ChatGPTとPlantUML/Mermaidによるソフトウェア設計
gowhich501
1
120
2025年夏 コーディングエージェントを統べる者
nwiizo
0
130
エラーとアクセシビリティ
schktjm
1
1.2k
Aurora DSQLはサーバーレスアーキテクチャの常識を変えるのか
iwatatomoya
0
140
サラリーマンの小遣いで作るtoCサービス - Cloudflare Workersでスケールする開発戦略
shinaps
1
380
DevIO2025_継続的なサービス開発のための技術的意思決定のポイント / how-to-tech-decision-makaing-devio2025
nologyance
1
370
2025年にHCP Vaultを学び直して見えた景色 / Lessons and New Perspectives from Relearning HCP Vault in 2025
aeonpeople
0
230
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
Designing for humans not robots
tammielis
253
25k
Thoughts on Productivity
jonyablonski
70
4.8k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.6k
Agile that works and the tools we love
rasmusluckow
330
21k
GraphQLとの向き合い方2022年版
quramy
49
14k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
How GitHub (no longer) Works
holman
315
140k
BBQ
matthewcrist
89
9.8k
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.
ぜひ懇親会で弊社社員と デジタル名刺交換をしてみてください!