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
Firebase Dynamic Linksって何?
Search
naoki yamamoto
April 16, 2019
Programming
2
5.4k
Firebase Dynamic Linksって何?
Firebase Dynamic Linksの概要とAndroidでの実装
naoki yamamoto
April 16, 2019
Tweet
Share
More Decks by naoki yamamoto
See All by naoki yamamoto
FirebaseMLKit入門.pdf
mos1210
0
1.5k
Other Decks in Programming
See All in Programming
Netty Chicago Java User Group 2024-04-17
sullis
0
170
エンターテイメント業界で利用されるAWS
demuyan
0
210
ゆるい個人開発のススメ
kuroppe1819
10
990
GitHub Copilotのススメ
marcy731
1
200
try!Swift Tokyo 2024 参加報告 LT
akidon0000
1
220
OpenAPIを中心に考えるAPI開発入門 / Introduction to API Development with a Focus on OpenAPI
seike460
PRO
2
170
TYPO3 v13 – The road to LTS: What's new and new APIs
luisasofie_xoxo
0
200
サイコロで理解する統計的仮説検定の考え方
tatamiya
4
930
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
43
19k
使ってみよう Azure AI Document Intelligence
kosmosebi
2
310
try! Swift Tokyo 初参加報告LT
hinakko2
0
220
Changed Rules: Architectures with Lightweight Stores
manfredsteyer
PRO
0
240
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
For a Future-Friendly Web
brad_frost
172
9k
Building Your Own Lightsaber
phodgson
99
5.7k
GraphQLの誤解/rethinking-graphql
sonatard
50
9.2k
Documentation Writing (for coders)
carmenintech
60
3.9k
Facilitating Awesome Meetings
lara
42
5.6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
121
39k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
The Cult of Friendly URLs
andyhume
74
5.7k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
187
16k
From Idea to $5000 a Month in 5 Months
shpigford
377
45k
Being A Developer After 40
akosma
57
580k
Transcript
'JSFCBTF%ZOBNJD-JOLTͬͯԿʁ 'JSFCBTFษڧձJOେࡕºԭೄ ݄ !NPT
ࢁຊঘل ·ͱͳ͓͖ ʙ8FCΞϓϦ։ൃ ʙ"OESPJEΞϓϦ։ൃ ཎՏෑެԂʹͯ !NPT ࣗݾհ
ΞδΣϯμ 'JSFCBTF%ZOBNJD-JOLTͱ ࣮ํ๏ ·ͱΊ
'JSFCBTF%ZOBNJD-JOLTͱ
μΠφϛοΫͳϦϯΫʁ
ϓϥοτϑΥʔϜɾΞϓϦͷΠϯετʔϧঢ় گʹԠͯ͡࠷దͳৼΔ͍Λ͢ΔϦϯΫ μΠφϛοΫಈత
IUUQTGPPCBBQBHFMJOLHJGU@B PC ϒϥβ Android ΞϓϦ iPhone ϒϥβ ʮ1$ͱJ04ϒϥβͰ։͘ʯʮ"OESPJEΞ ϓϦͰ։͘ʯͱ͍͏Α͏ʹৼΔ͍Λࢦఆͯ͠ μΠφϛοΫϦϯΫΛ࡞Δ͜ͱ͕Ͱ͖Δ
ྉۚ: ແྉ
ϦϯΫΛ։͘ ະΠϯετʔϧͷ߹ΞϓϦετΞ ΞϓϦ ΞϓϦͰϦϯΫΛղੳ͠ɺ ҙͷಈ࡞Λͤ͞Δ Ϣʔβʔ Πϯετʔϧࡁ? Yes No
ᶃΞϓϦ͕ະΠϯετʔϧ࣌ΞϓϦετΞ ᶄΠϯετʔϧޙʹϦϯΫใ͕ҡ࣋͞ΕΔ ͷͰɺ͍͖ͳΓը໘ΛදࣔͰ͖Δ ͷϑϥϫʔΪϑτ IUUQTGPPCBBQBHFMJOLHJGU@B INSTALL ᶃ ᶄ ΧʔτʹೖΕΔ ۩ମྫ
ΞϓϦ ϒϥβ4/4ͳͲ
Dynamic Links ༻ྫ Firebase Dynamic LinksͷϢʔεέʔε • ΣϒϢʔβʔΛΞϓϦϢʔβʔʹ͢Δ ΞϓϦΠϯετʔϧޙʹΣϒͰද͍ࣔͯͨ͠ը໘ʹରԠ͢ΔΞϓϦͷը໘ ͕දࣔͰ͖Δ
• SNSɺϝʔϧɺSMSͰͷΩϟϯϖʔϯ • ϢʔβʔؒͰͷڞ༗ ΞϓϦʹϢʔβʔΛট͢Δ ϢʔβʔʹΑΔհʹใुΛ༩͢Δ • ύιίϯϢʔβʔΛΞϓϦϢʔβʔʹ͢Δ • ࣮ੈքͰͷΞϓϦͷએ QRίʔυEddystoneϏʔίϯΛ༻ͯ͠ΠϕϯτձͰΞϓϦΛએ
࣮ํ๏ "OESPJEͰͬͯΈͨ
ׂѪ w 'JSFCBTFΞΧϯτͷ࡞ w 'JSFCBTFͷίϯιʔϧͰͷϓϩδΣΫτ࡞
'JSFCBTFͱ%ZOBNJD-JOLT4%,Λઃఆ͢Δ μΠφϛοΫϦϯΫΛ࡞͢Δ ΞϓϦͰμΠφϛοΫϦϯΫΛॲཧ͢Δ ࣮खॱ
'JSFCBTFͱ%ZOBNJD-JOLT4%,Λઃఆ͢Δ μΠφϛοΫϦϯΫΛ࡞͢Δ ΞϓϦͰμΠφϛοΫϦϯΫΛॲཧ͢Δ
w 'JSFCBTFʹΞϓϦใΛొ w ઃఆϑΝΠϧΛμϯϩʔυͯ͠ΞϓϦʹஔ w ΞϓϦʹ'JSFCBTF4%,ΛՃ લఏ݅ɿΞϓϦΛ࡞͓ͬͯ͘ 'JSFCBTFొͱ4%,ઃఆ
None
None
None
implementation 'com.android.support:support-v4:28.0.0' αϙʔταΠϒϥϦͷόʔδϣϯڝ߹Λղܾ͢ΔͨΊҎԼه͕ඞཁ
εΩοϓͯ͠OKɻΞϓϦΛىಈ͠ ͯ1΄ͲͭͱҎԼը໘
'JSFCBTFͱ%ZOBNJD-JOLT4%,Λઃఆ͢Δ μΠφϛοΫϦϯΫΛ࡞͢Δ ΞϓϦͰμΠφϛοΫϦϯΫΛॲཧ͢Δ
w 'JSFCBTFίϯιʔϧ w J04 "OESPJEͷ%ZOBNJD-JOL#VJMEFS"1* w 3&45"1* w खಈͰ63-Λ࡞Δ %ZOBNJD-JOLTͷ࡞ํ๏
None
googleఏڙͷυϝΠϯ༻࣌ mos1210ͷ෦ઃఆՄೳ
None
None
ॳظϥϯμϜɹઃఆՄೳ
PCϒϥβͰ։͘߹ͷURL σΟʔϓϦϯΫͷҰཡʹදࣔ͞ΕΔ
None
None
None
͜ͷஈ֊Ͱ"OESPJEͰ্ه63-Λୟ͚ΞϓϦετΞʹભҠ ΞφϦςΟΫεɺ͘Β͍ͯө͞ΕΔ
None
'JSFCBTFͱ%ZOBNJD-JOLT4%,Λઃఆ͢Δ μΠφϛοΫϦϯΫΛ࡞͢Δ ΞϓϦͰμΠφϛοΫϦϯΫΛॲཧ͢Δ
w J04 w "OESPJE w $ w 6OJUZ %ZOBNJD-JOLTͷड৴ํ๏
ΞϓϦ: build.gradle AndroidManifest.xml implementation 'com.google.firebase:firebase-dynamic-links:16.1.8' ϥϯνϟʔΞΫςΟϏςΟͰμΠφϛοΫϦϯΫΛड৴͢Δ߹ෆཁ <activity android:name=".MainActivity"> <intent-filter> <action
android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="classmethod.connpass.com" android:scheme=“https" android:pathPrefix="/event"/> </intent-filter> </activity>
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) FirebaseDynamicLinks.getInstance() .getDynamicLink(intent) .addOnSuccessListener(this)
{ pendingDynamicLinkData -> val deepLink: Uri? = pendingDynamicLinkData?.link if (deepLink != null) { if (deepLink.path == "/event/124390/") { txt.text = "େࡕΠϕϯτͩΑʔʂ" } else if (deepLink.path == "/event/124317/") { txt.text = "ԭೄΠϕϯτͩΑʔʂ" } } else { txt.text = "௨ৗىಈͩΑʔʂ" } } .addOnFailureListener(this) { e -> Log.w(TAG, "Failure", e) } } MainActivity.kt
σϞ
·ͱΊ
w ͭͷϦϯΫͰ༷ʑͳϓϥοτϑΥʔϜʹରԠͰ͖Δ w ΠϯετʔϧޙʹϦϯΫΛղੳͯ͠ҙͷಈ࡞͕Մೳ w ΞφϦςΟΫεͰΫϦοΫͳͲܭଌՄೳ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠