Slide 1

Slide 1 text

/VYUKTͰ࢝ΊΔ18" 5BLBOPSJ0LJ !XFKT

Slide 2

Slide 2 text

ࣗݾ঺հ w େ໦ଚلʢΦΦΩλΧϊϦ!UBLBOPSJQʣ w ϑϩϯτΤϯυΤϯδχΞ w גࣜձࣾεϚʔτυϥΠϒ w 3FBDUɺ7VFɺ1PMZNFSɺ΢Σϒ੍࡞શൠ w 1PMZNFS+BQBO຋༁νʔϜ w ࠓ೥ΛৼΓฦͬͯɿ
 ڈ೥͔Βମॏ͕LH͔ͪ͘૿͑ͨͷͰےτϨ͕Μ͹Δ

Slide 3

Slide 3 text

౰ॳͷλΠτϧ ʮ7VFKTͰ࢝ΊΔ18"ʯ

Slide 4

Slide 4 text

IUUQTRJJUBDPNHZBSBTVJUFNT GFEDBFEF

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

·Δ͔ͿΓʘ ?P? ʗ

Slide 7

Slide 7 text

ؾΛऔΓ௚ͯ͠

Slide 8

Slide 8 text

/VYUKTͰ࢝ΊΔ18"

Slide 9

Slide 9 text

18"

Slide 10

Slide 10 text

18" w 1SPHSFTTJWF8FC"QQMJDBUJPOͷུ w 8FC͚ͩͲωΠςΟϒʹ͍ۙ69ΛఏڙՄೳ w ϓογϡ௨஌ɺΦϑϥΠϯରԠɺϗʔϜը໘ʹ௥Ճͱ͔ w ৄ͘͠͸(PPHMF%FWFMPQFSTͱ͔ࢀর w ߏ੒ٕज़ w -JHIUIPVTF w 4FSWJDF8PSLFS w $BDIF4UPSBHF w *OEFYFE%#

Slide 11

Slide 11 text

4FSWJDF8PSLFS "QQ 4FSWJDF8PSLFS OFUXPSL $BDIF

Slide 12

Slide 12 text

/VYUKT

Slide 13

Slide 13 text

/VYUKT w Ϣχόʔαϧ7VFKTΞϓϦέʔγϣϯ w 7VFKTͰ443͢ΔͨΊͷϑϨʔϜϫʔΫ w ؀ڥߏஙͱ͔ϧʔςΟϯά΋উखʹ͍͍ײ͡ʹ͠ͱ͍ͯ ͘ΕΔ w 443͢ΔͨΊͷίʔυΛੜ੒ͯ͘͠ΕΔͷͰɺ
 ΞϓϦέʔγϣϯຊମͷ։ൃʹूதͰ͖Δ w 73$

Slide 14

Slide 14 text

/VYUKTʹ18"Λಋೖ͢Δ৔߹ w QXBNPEVMFΛ࢖͏ w IUUQTHJUIVCDPNOVYUDPNNVOJUZQXBNPEVMF w ϥΠϒϥϦΛ/VYU༻ʹϞδϡʔϧԽͨ͠΋ͷ w .BOJGFTU.PEVMF w 8PSLCPY.PEVMF w *DPO.PEVMF w .FUB.PEVMF w 0OF4JHOBM.PEVMF

Slide 15

Slide 15 text

ಋೖ

Slide 16

Slide 16 text

yarn add @nuxtjs/pwa

Slide 17

Slide 17 text

OVYUDPOpHKT { modules: [ '@nuxtjs/pwa' ], // デフォルトだとdevで使えないので設定を追加 workbox: { dev: true }, }

Slide 18

Slide 18 text

HJUJHOPSF sw.*

Slide 19

Slide 19 text

ʂʂ؆୯ʂʂ

Slide 20

Slide 20 text

0OF4JHOBM

Slide 21

Slide 21 text

0OF4JHOBM w ϓογϡ௨஌ʹಛԽͨ͠αʔϏε w ϞόΠϧ"QQ͚ͩͰͳ͘8FC1VTIʹ΋ରԠ͍ͯ͠Δ w ೔ຊޠ৘ใগͳΊ w 6CFSͱ͔΋࢖ͬͯΔΒ͍͠

Slide 22

Slide 22 text

0OF4JHOBMͷొ࿥ϑϩʔ͸লུ *%͕ඞཁͳͷͰίϐΔ

Slide 23

Slide 23 text

yarn add @nuxtjs/onesignal

Slide 24

Slide 24 text

OVYUDPOpHKT // pwa-moduleの前に読み込む modules: [ '@nuxtjs/onesignal', '@nuxtjs/pwa' ], workbox: { dev: true },

Slide 25

Slide 25 text

OVYUDPOpHKT oneSignal: { init: { appId: ‘Your App ID’, allowLocalhostAsSecureOrigin: true, // 通知許可を求めるダイアログを最初に出さない autoRegister: false, welcomeNotification: { disable: true }, notifyButton: { enable: true } } },

Slide 26

Slide 26 text

σϑΥϧτͷ௨஌ઃఆμΠΞϩάΛ ग़͢લʹɺ֬ೝΛ͸͞·ͳ͍ͱͩΊ

Slide 27

Slide 27 text

ϓογϡ௨஌Λड͚औͬͨ λΠϛϯάͰൃՐ͢ΔΠϕϯτ΋ ͋Δ

Slide 28

Slide 28 text

OVYUDPOpHKT // Inside page components this.$OneSignal.push(() => { this.$OneSignal.isPushNotificationsEnabled((isEnabled) => { if (isEnabled) { console.log('Push notifications are enabled!') } else { console.log('Push notifications are not enabled yet.') } }) })

Slide 29

Slide 29 text

1VTI௨஌͸༻๏༻ྔΛकͬͯ ࢖͍·͠ΐ͏ʂʂ

Slide 30

Slide 30 text

%&.0

Slide 31

Slide 31 text

·ͱΊ w /VYUKTͳΒ18"Λಋೖ͢Δͷ΋؆୯ʹͰ͖Δʂ w ϓογϡ௨஌΋͙͢Ͱ͖Δ w /VYUKTͰ18"Λಋೖ͍ͯ͜͠͏ʂ

Slide 32

Slide 32 text

ྑ͍͓೥Λʂ