Slide 1

Slide 1 text

/PUJpDBUJPO$POUFOU &YUFOTJPOΛ࢖ͬͯΈͨ ؔ੢ϞόΠϧΞϓϦݚڀձ !JUPL@UXJU

Slide 2

Slide 2 text

!JUPL@UXJU w ͍ͱ͏͚͍ʢJUPLʣ w ɹɹɹɹɹɹͷதͷਓ w ެࢲڞʹϓϩάϥϚJ04.BDʢͨ·ʹ"OESPJE΍8JOEPXTʣ w IUUQJUPLKQ IUUQTPSBLB[FDPKQ

Slide 3

Slide 3 text

/PUJpDBUJPO$POUFOU &YUFOTJPOͱ͸

Slide 4

Slide 4 text

දࣔͰ͖Δ΋ͷ w ී௨ͷ6*ίϯςϯπͳΒ͍͍ͩͨԿͰ΋

Slide 5

Slide 5 text

6*8FC7JFX

Slide 6

Slide 6 text

.,.BQ7JFX

Slide 7

Slide 7 text

΍ͬͯΈΑ͏ 9DPEFJ04 ϦϞʔτ௨஌

Slide 8

Slide 8 text

5BSHFUΛ௥Ճ

Slide 9

Slide 9 text

*OGPQMJTUͷฤू

Slide 10

Slide 10 text

6//PUJpDBUJPO&YUFOTJPO $BUFHPSZ w ඞਢ w ௨஌ૹ৴ଆͰ͜ΕΛࢦఆ w $BUFHPSZ͕Ұகͨ͠৔߹ͷΈ&YUFOTJPO͕ىಈ

Slide 11

Slide 11 text

6//PUJpDBUJPO&YUFOTJPO *OJUJBM$POUFOU4J[F3BUJP w ඞਢ w ௨஌7JFXͷΞεϖΫτൺॳظ஋ w 7JFXͷαΠζ͸͋ͱ͔ΒมߋՄೳ w ԣج४

Slide 12

Slide 12 text

6//PUJpDBUJPO&YUFOTJPO %FGBVMU$POUFOU)JEEFO w Φϓγϣϯ w σϑΥϧτͷ௨஌಺༰Λදࣔ͢Δ͔Ͳ͏͔ͷϑϥά w 5JUMFɺ4VC5JUMFɺ#PEZͳͲ w σϑΥϧτɿGBMTF

Slide 13

Slide 13 text

6//PUJpDBUJPO&YUFOTJPO 0WFSSJEFT%FGBVMU5JUMF w Φϓγϣϯ w ௨஌7JFXͷ্෦λΠτϧΛ7JFX$POUSPMMFSUJUMFͰ ্ॻ͖͢Δ͔Ͳ͏͔ͷϑϥά w ௨஌಺༰ʹ߹ΘͤͨλΠτϧʹ͢Δ͜ͱ΋Մೳ w σϑΥϧτɿGBMTF

Slide 14

Slide 14 text

࣮૷ // දࣔॲཧͷ࣮ମ // self.title΋͜͜Ͱॻ͖׵͑ΒΕΔ←OverridesDefaultTitle func didReceive(_ notification: UNNotification) { } // Actionॲཧͷ࣮ମ func didReceive(_ response: UNNotificationResponse, completionHandler completion: @escaping (UNNotificationContentExtensionResponseOption) -> Void) { } 6//PUJpDBUJPO$POUFOU&YUFOTJPO

Slide 15

Slide 15 text

௨஌ͷૹ৴ \ BQT\ BMFSU\ UJUMF5JUMF TVCUJUMF4VC5JUMF CPEZ#PEZ ^ DBUFHPSZNZ$BUFHPSZ ^ ^

Slide 16

Slide 16 text

ϝϞ w ௨஌7JFX্͸λονΠϕϯτ͕ൃੜ͠ͳ͍ w ϝσΟΞͷ࠶ੜίϯτϩʔϧ͚ͩ͸දࣔ͢ΔͨΊͷ ϓϩύςΟ͕͋Δ w Ϣʔβ͔Βͷૢ࡞Λड͚෇͚͍ͨ৔߹͸ 6//PUJpDBUJPO"DUJPOΛ࢖͏

Slide 17

Slide 17 text

ϝϞ w /PUJpDBUJPO4FSWJDF&YUFOTJPOͱҧͬͯແࢹͰ͖ ͳ͍ w $BUFHPSZΛΘ͚Δ͜ͱͰෳ਺ͷ&YUFOTJPOΛ࢖͍ ෼͚Δ͜ͱ͕Ͱ͖Δ

Slide 18

Slide 18 text

ϝϞ w 4FSWJDF&YUFOTJPOͱͷಉډ΋Մೳ NVUBCMFDPOUFOU ແ ༗ DBUFHPSZ ແ 4FSWJDF&YUFOTJPO ༗ $POUFOU&YUFOTJPO 4FSWJDF&YUFOTJPO
 ˣ
 $POUFOU&YUFOTJPO

Slide 19

Slide 19 text

"DUJPOαϯϓϧ \ BQT\ BMFSU\ UJUMFؔϞό TVCUJUMF CPEZ/PUJpDBUJPO$POUFOU&YUFOTJPOΛ࢖ͬͯΈͨ!JUPL ^ DBUFHPSZ,BONPCB NVUBCMFDPOUFOU JNHVSMYYY VSMIUUQTLBONPCBDPOOQBTTDPNFWFOU ^ ^

Slide 20

Slide 20 text

"DUJPOαϯϓϧ // ϗετΞϓϦέʔγϣϯଆ let action = UNNotificationAction(identifier: "open", title: "Open", options: []) let category = UNNotificationCategory(identifier: "Kanmoba", actions: [action], intentIdentifiers: [], options: []) UNUserNotificationCenter.current() .setNotificationCategories([category])

Slide 21

Slide 21 text

"DUJPOαϯϓϧ // Extensionଆ func didReceive(_ response: UNNotificationResponse, completionHandler completion: @escaping (UNNotificationContentExtensionResponseOption) -> Void) { if response.actionIdentifier == "open" { if let url = response.notification.request.content.userInfo["url"] as? String { self.extensionContext?.open(URL(string: url)!, completionHandler: nil) } } completion(.dismiss) } &YUFOTJPOͰॲཧ͞Εͳ͍ʢϝιου͕ఆٛ͞Ε͍ͯͳ͍ʣ৔߹͸ ϗετʹ౉͞ΕΔʢΒ͍͠ʣ

Slide 22

Slide 22 text

/PUJpDBUJPO$POUFOU &YUFOTJPOΛ࢖ͬͯ ϦονͳϢʔβମݧΛ