ããã¯ã°ã©ãŠã³ããã§ããã®åŒ·åãªæ©èœã掻çšããWebã¢ããªã§å ç¢ãªãªãã©ã€ã³ããŒã¿åæãå®çŸããæ¹æ³ãæ¢ããŸããå®è£ æŠç¥ããŠãŒã¹ã±ãŒã¹ããã¹ããã©ã¯ãã£ã¹ãåŠã³ãäžçäžã®ãŠãŒã¶ãŒã«ã·ãŒã ã¬ã¹ãªäœéšãæäŸããŸãããã
ããã¯ã°ã©ãŠã³ããã§ããïŒææ°ã®Webã¢ããªã±ãŒã·ã§ã³ã«ãããã·ãŒã ã¬ã¹ãªãªãã©ã€ã³ããŒã¿åæ
仿¥ã®ã³ãã¯ããããªäžçã§ã¯ããŠãŒã¶ãŒã¯ãããã¯ãŒã¯æ¥ç¶ãå¶éãããŠãããä¿¡é Œã§ããªãå°åã§ããWebã¢ããªã±ãŒã·ã§ã³ãå¿çæ§ãé«ãå©çšå¯èœã§ããããšãæåŸ ããŠããŸãã匷åãªWeb APIã§ããããã¯ã°ã©ãŠã³ããã§ããã¯ãããã¯ã°ã©ãŠã³ãã§ããŒã¿ãããŠã³ããŒããåæããããã®å ç¢ãªã¡ã«ããºã ãæäŸããäžçäžã®ãŠãŒã¶ãŒã«ã·ãŒã ã¬ã¹ãªãªãã©ã€ã³äœéšãä¿èšŒããŸãããã®å æ¬çãªã¬ã€ãã§ã¯ãããã¯ã°ã©ãŠã³ããã§ããã«é¢é£ããæŠå¿µãå®è£ æŠç¥ããŠãŒã¹ã±ãŒã¹ãããã³ãã¹ããã©ã¯ãã£ã¹ã«ã€ããŠæ¢æ±ããŸãã
ããã¯ã°ã©ãŠã³ããã§ããã®åºç€ãçè§£ãã
ããã¯ã°ã©ãŠã³ããã§ãããšã¯ïŒ
ããã¯ã°ã©ãŠã³ããã§ããã¯ããŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ãéããããããŒãžããç§»åãããããåŸã§ãããµãŒãã¹ã¯ãŒã«ãŒãããã¯ã°ã©ãŠã³ãã§å€§èŠæš¡ãªããŠã³ããŒããéå§ããã³ç®¡çã§ããããã«ããWeb APIã§ãããã®æ©èœã¯ãã³ã³ãã³ãããªãœãŒã¹ãžã®ãªãã©ã€ã³ã¢ã¯ã»ã¹ãå«ããã¢ããªã®ãããªäœéšãæäŸããããšãç®çãšããããã°ã¬ãã·ãWebã¢ããªïŒPWAïŒã«ç¹ã«åœ¹ç«ã¡ãŸãã
WebããŒãžã®ã©ã€ããµã€ã¯ã«ã«çŽã¥ããããŠããåŸæ¥ã®ãã§ãããªã¯ãšã¹ããšã¯ç°ãªããããã¯ã°ã©ãŠã³ããã§ããã¯ç¬ç«ããŠåäœãããããããŠã³ããŒããäžæããããšãªãç¶ç¶ã§ããŸããããã«ããã倧ããªã¡ãã£ã¢ãã¡ã€ã«ã®ããŠã³ããŒãããŠã§ããµã€ãã¢ã»ããã®ãã£ãã·ã¥ããŸãã¯ãªã¢ãŒããµãŒããŒããã®ããŒã¿åæãªã©ã®ã·ããªãªã«æé©ã§ãã
äž»èŠãªæŠå¿µãšã³ã³ããŒãã³ã
- ãµãŒãã¹ã¯ãŒã«ãŒ: ã¡ã€ã³ã®ãã©ãŠã¶ã¹ã¬ãããšã¯å¥ã«ããã¯ã°ã©ãŠã³ãã§å®è¡ãããã¹ã¯ãªããã§ããªãã©ã€ã³ãµããŒããããã·ã¥éç¥ãããã¯ã°ã©ãŠã³ãåæãªã©ã®æ©èœãæå¹ã«ããŸããããã¯ã°ã©ãŠã³ããã§ããã¯ãµãŒãã¹ã¯ãŒã«ãŒã«ãã£ãŠéå§ããã³ç®¡çãããŸãã
- ãã£ãã·ã¥API: ãããã¯ãŒã¯ãªã¯ãšã¹ããšã¬ã¹ãã³ã¹ãä¿åããã³ååŸããããã®ã¡ã«ããºã ãããã¯ã°ã©ãŠã³ããã§ããã¯ãããŠã³ããŒãããããŒã¿ããªãã©ã€ã³ã¢ã¯ã»ã¹ã®ããã«ä¿åããããã«ããã°ãã°ãã£ãã·ã¥APIãšçµ±åãããŸãã
- ããã¯ã°ã©ãŠã³ããã§ããAPI: ããã¯ã°ã©ãŠã³ãã§ã®ããŠã³ããŒããéå§ãç£èŠã管çããããã®JavaScriptã€ã³ã¿ãŒãã§ãŒã¹ã®ã»ããã
- ç»é² (Registration): ããŠã³ããŒããããªãœãŒã¹ãšé¢é£ããã¡ã¿ããŒã¿ãæå®ããŠãããã¯ã°ã©ãŠã³ããã§ãããªã¯ãšã¹ããäœæããããã»ã¹ã
- é²æè¿œè·¡ (Progress Tracking): ããã¯ã°ã©ãŠã³ãããŠã³ããŒãã®é²æãç£èŠãããŠãŒã¶ãŒã«æŽæ°æ å ±ãæäŸããããå®äºãŸãã¯å€±ææã«ã¢ã¯ã·ã§ã³ãå®è¡ãããããæ©èœã
ããã¯ã°ã©ãŠã³ããã§ããã®ãŠãŒã¹ã±ãŒã¹
ããã¯ã°ã©ãŠã³ããã§ããã¯ãããŸããŸãªãŠãŒã¹ã±ãŒã¹ã«é©çšã§ãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããWebã¢ããªã±ãŒã·ã§ã³ã®å šäœçãªããã©ãŒãã³ã¹ãæ¹åããŸãã以äžã«ããã€ãã®æ³šç®ãã¹ãäŸãæããŸãã
ãªãã©ã€ã³ã³ã³ãã³ãã®å¯çšæ§
ããã¯ã°ã©ãŠã³ããã§ããã®äž»ãªãŠãŒã¹ã±ãŒã¹ã®1ã€ã¯ãã³ã³ãã³ããžã®ãªãã©ã€ã³ã¢ã¯ã»ã¹ãå¯èœã«ããããšã§ããäŸãã°ããã¥ãŒã¹ã¢ããªã±ãŒã·ã§ã³ã§ãŠãŒã¶ãŒãèšäºãç»åãåŸã§èªãããã«ããŠã³ããŒãããã€ã³ã¿ãŒãããæ¥ç¶ããªããšãã§ãèªããããã«ããå Žåãæ³åããŠã¿ãŠãã ãããããã¯ã°ã©ãŠã³ããã§ããã䜿çšããŠææ°ã®èšäºãããã¯ã°ã©ãŠã³ãã§ããŠã³ããŒãããããšã§ããŠãŒã¶ãŒã¯æ¥ç¶ç¶æ³ã«é¢ä¿ãªãåžžã«æ°ããã³ã³ãã³ãã«ã¢ã¯ã»ã¹ã§ããŸãã
äŸïŒæ è¡ã¬ã€ãã¢ããªã±ãŒã·ã§ã³ã§ã¯ããŠãŒã¶ãŒããªãã©ã€ã³ã§äœ¿çšããããã«å°å³ãã·ãã£ã¬ã€ããããŠã³ããŒãã§ããŸããããã¯ã°ã©ãŠã³ããã§ããã¯ããŠãŒã¶ãŒãå®å®ããã€ã³ã¿ãŒãããæ¥ç¶ãæã£ãŠãããšãã«ãããã®ãªãœãŒã¹ãããŠã³ããŒãããããã«äœ¿çšãããæ¥ç¶ãå¶éãããŠããå°åãæ è¡ããŠãããšãã«å©çšã§ããããã«ããŸãã
ãŠã§ããµã€ãã¢ã»ããã®ãã£ãã·ã³ã°
ããã¯ã°ã©ãŠã³ããã§ããã¯ãç»åãã¹ã¿ã€ã«ã·ãŒããJavaScriptãã¡ã€ã«ãªã©ã®ãŠã§ããµã€ãã¢ã»ããããã£ãã·ã¥ããããã«äœ¿çšã§ããã¢ããªã±ãŒã·ã§ã³ã®èªã¿èŸŒã¿é床ãåäžããã垯åå¹ ã®æ¶è²»ãåæžããŸãããããã®ã¢ã»ãããããã¯ã°ã©ãŠã³ãã§ãã£ãã·ã¥ããããšã«ããããŠãŒã¶ãŒããªãã©ã€ã³ã®ãšãã§ããæ¬¡åã®èšªåæã«ã¢ããªã±ãŒã·ã§ã³ãããéãèªã¿èŸŒãŸããããã«ãªããŸãã
äŸïŒeã³ããŒã¹ãŠã§ããµã€ãã¯ãããã¯ã°ã©ãŠã³ããã§ããã䜿çšããŠååç»åã説æãäºåã«ãã£ãã·ã¥ããäœéãªãããã¯ãŒã¯æ¥ç¶ã§ããŠãŒã¶ãŒãè¿ éãã€å¹ççã«ã«ã¿ãã°ãé²èЧã§ããããã«ããŸãã
倧容éãã¡ã€ã«ã®ããŠã³ããŒã
ããã¯ã°ã©ãŠã³ããã§ããã¯ããããªããªãŒãã£ãªãã¡ã€ã«ããœãããŠã§ã¢ã¢ããããŒããªã©ã®å€§å®¹éãã¡ã€ã«ã®ããŠã³ããŒãã«ç¹ã«é©ããŠããŸããåŸæ¥ã®ããŠã³ããŒãæ¹æ³ãšã¯ç°ãªããããã¯ã°ã©ãŠã³ããã§ããã§ã¯ããŠãŒã¶ãŒãããŒãžããç§»åãããã¢ããªã±ãŒã·ã§ã³ãéãããããŠããããŠã³ããŒããäžæãããããšãªãç¶ç¶ããŸãã
äŸïŒããããã£ã¹ãã¢ããªã±ãŒã·ã§ã³ã¯ãããã¯ã°ã©ãŠã³ããã§ããã䜿çšããŠæ°ãããšããœãŒããããã¯ã°ã©ãŠã³ãã§ããŠã³ããŒããããŠãŒã¶ãŒãéå€äžãæ è¡äžãªã©ããªãã©ã€ã³ã§ãæ°ã«å ¥ãã®çªçµãèŽããããã«ããŸãã
ããŒã¿åæ
ããã¯ã°ã©ãŠã³ããã§ããã¯ãã¯ã©ã€ã¢ã³ããšãµãŒããŒéã§ããŒã¿ãåæããããã«äœ¿çšã§ããã¢ããªã±ãŒã·ã§ã³ãåžžã«ææ°ã®ç¶æ ã§ããããšãä¿èšŒããŸããããã¯ããœãŒã·ã£ã«ã¡ãã£ã¢ã¢ããªãã³ã©ãã¬ãŒã·ã§ã³ããŒã«ãªã©ããªã¢ã«ã¿ã€ã ããŒã¿ãå¿ èŠãªã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠç¹ã«éèŠã§ãã
äŸïŒã¿ã¹ã¯ç®¡çã¢ããªã±ãŒã·ã§ã³ã¯ãããã¯ã°ã©ãŠã³ããã§ããã䜿çšããŠãŠãŒã¶ãŒã®ããã€ã¹ãšãµãŒããŒéã§ã¿ã¹ã¯ãšãããžã§ã¯ããåæãããŠãŒã¶ãŒããªãã©ã€ã³ã®ãšãã§ããã¹ãŠã®å€æŽããã¹ãŠã®ããã€ã¹ã«åæ ãããããã«ããŸãã
ããã¯ã°ã©ãŠã³ããã§ããã®å®è£
ããã¯ã°ã©ãŠã³ããã§ããã®å®è£ ã«ã¯ããµãŒãã¹ã¯ãŒã«ãŒã®ç»é²ãããã¯ã°ã©ãŠã³ããã§ãããªã¯ãšã¹ãã®äœæãããŠã³ããŒãã®é²æãšå®äºã®åŠçãªã©ãããã€ãã®ã¹ããããå«ãŸããŸãã
ãµãŒãã¹ã¯ãŒã«ãŒã®ç»é²
æåã®ã¹ãããã¯ãããã¯ã°ã©ãŠã³ããã§ãããªã¯ãšã¹ããåŠçãããµãŒãã¹ã¯ãŒã«ãŒãç»é²ããããšã§ãããµãŒãã¹ã¯ãŒã«ãŒã¯ãã¡ã€ã³ã®ãã©ãŠã¶ã¹ã¬ãããšã¯å¥ã«ããã¯ã°ã©ãŠã³ãã§å®è¡ãããJavaScriptãã¡ã€ã«ã§ãããµãŒãã¹ã¯ãŒã«ãŒãç»é²ããã«ã¯ãã¡ã€ã³ã®JavaScriptãã¡ã€ã«ã«æ¬¡ã®ã³ãŒãã远å ããŸãã
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/service-worker.js')
.then(function(registration) {
console.log('Service Worker registered with scope:', registration.scope);
})
.catch(function(error) {
console.log('Service Worker registration failed:', error);
});
}
ããã¯ã°ã©ãŠã³ããã§ãããªã¯ãšã¹ãã®äœæ
ãµãŒãã¹ã¯ãŒã«ãŒãç»é²ãããããBackgroundFetchManager.fetch()
ã¡ãœããã䜿çšããŠããã¯ã°ã©ãŠã³ããã§ãããªã¯ãšã¹ããäœæã§ããŸãããã®ã¡ãœããã¯æ¬¡ã®åŒæ°ãåããŸãã
- id: ããã¯ã°ã©ãŠã³ããã§ãããªã¯ãšã¹ãã®äžæã®èå¥åã
- requests: ããŠã³ããŒãããURLã®é åã
- options: ã¿ã€ãã«ãã¢ã€ã³ã³ãããŠã³ããŒãå ãªã©ã®è¿œå ãªãã·ã§ã³ãæå®ãããªãã·ã§ã³ã®ãªããžã§ã¯ãã
ããã¯ã°ã©ãŠã³ããã§ãããªã¯ãšã¹ããäœæããæ¹æ³ã®äŸã次ã«ç€ºããŸãã
navigator.serviceWorker.ready.then(async registration => {
try {
const bgFetch = await registration.backgroundFetch.fetch('my-download',
['/images/image1.jpg', '/images/image2.jpg'],
{
title: 'My Awesome Download',
icons: [{
sizes: '300x300',
src: '/images/icon.png',
type: 'image/png',
}],
downloadTotal: 2048, // Expected download size in bytes.
}
);
console.log('Background Fetch registered', bgFetch);
bgFetch.addEventListener('progress', () => {
console.log(`Downloaded ${bgFetch.downloaded} of ${bgFetch.downloadTotal}`);
});
} catch (err) {
console.error(err);
}
});
ããŠã³ããŒãã®é²æãšå®äºã®åŠç
BackgroundFetchRegistration
ãªããžã§ã¯ãã®progress
ã€ãã³ãããªãã¹ã³ããããšã§ãããã¯ã°ã©ãŠã³ãããŠã³ããŒãã®é²æã远跡ã§ããŸãããã®ã€ãã³ãã¯ãããŠã³ããŒãã®é²è¡äžã«å®æçã«çºçããããŠã³ããŒããããããŒã¿éã«é¢ããæŽæ°ãæäŸããŸãã
ããŠã³ããŒããå®äºãããšãbackgroundfetchsuccess
ã€ãã³ããçºçããŸãããã®ã€ãã³ãã䜿çšããŠããŠãŒã¶ãŒã«éç¥ã衚瀺ããããã¢ããªã±ãŒã·ã§ã³ã®UIãæŽæ°ããããããªã©ã®ã¢ã¯ã·ã§ã³ãå®è¡ã§ããŸãã
ããŠã³ããŒãã倱æãããšãbackgroundfetchfail
ã€ãã³ããçºçããŸãããã®ã€ãã³ãã䜿çšããŠãšã©ãŒãåŠçããå¿
èŠã«å¿ããŠããŠã³ããŒããå詊è¡ã§ããŸãã
ããŠã³ããŒãã®é²æãšå®äºãåŠçããæ¹æ³ã®äŸã次ã«ç€ºããŸãã
bgFetch.addEventListener('progress', () => {
const percent = bgFetch.downloaded / bgFetch.downloadTotal;
console.log(`Download progress: ${percent * 100}%`);
});
bgFetch.addEventListener('backgroundfetchsuccess', () => {
console.log('Download completed successfully!');
});
bgFetch.addEventListener('backgroundfetchfail', () => {
console.error('Download failed!');
});
ããŠã³ããŒãããããŒã¿ã®ä¿å
ããŠã³ããŒããå®äºãããããªãã©ã€ã³ã¢ã¯ã»ã¹ã®ããã«ããŠã³ããŒãããããŒã¿ããã£ãã·ã¥APIã«ä¿åããå¿
èŠããããŸãããããè¡ãã«ã¯ãBackgroundFetchRegistration
ãªããžã§ã¯ãã®records
ããããã£ãå埩åŠçããåã¬ã¹ãã³ã¹ããã£ãã·ã¥ã«è¿œå ããŸãã
ããŠã³ããŒãããããŒã¿ããã£ãã·ã¥APIã«ä¿åããæ¹æ³ã®äŸã次ã«ç€ºããŸãã
bgFetch.addEventListener('backgroundfetchsuccess', async () => {
const cache = await caches.open('my-cache');
const records = await bgFetch.matchAll();
for (const record of records) {
await cache.put(record.request, record.response);
}
console.log('Downloaded data stored in cache!');
});
ããã¯ã°ã©ãŠã³ããã§ããã®ãã¹ããã©ã¯ãã£ã¹
ããã¯ã°ã©ãŠã³ããã§ããã®å®è£ ãå ç¢ã§å¹ççã§ããããšãä¿èšŒããããã«ã次ã®ãã¹ããã©ã¯ãã£ã¹ãæ€èšããŠãã ããã
ãŠãŒã¶ãŒã«æç¢ºãªãã£ãŒãããã¯ãæäŸãã
ããŠã³ããŒãã®é²æç¶æ³ã«ã€ããŠãŠãŒã¶ãŒã«æç¢ºãªãã£ãŒãããã¯ãæäŸããããšãéèŠã§ããããã¯ãããã°ã¬ã¹ããŒã衚瀺ããããéç¥ã衚瀺ããããã¢ããªã±ãŒã·ã§ã³ã®UIãæŽæ°ãããããããšã§è¡ããŸãããã£ãŒãããã¯ãæäŸããããšã§ããŠãŒã¶ãŒã¯ããŠã³ããŒããé²è¡äžã§ããããšã確信ããããã»ã¹ãäžæããã®ãé²ããŸãã
ãšã©ãŒãé©åã«åŠçãã
ããã¯ã°ã©ãŠã³ãããŠã³ããŒãã¯ããããã¯ãŒã¯ãšã©ãŒããµãŒããŒãšã©ãŒãã¹ãã¬ãŒãžå®¹éã®äžè¶³ãªã©ãããŸããŸãªçç±ã§å€±æããå¯èœæ§ããããŸãããããã®ãšã©ãŒãé©åã«åŠçãããŠãŒã¶ãŒã«æçãªãšã©ãŒã¡ãã»ãŒãžãæäŸããããšãéèŠã§ãããŸããé å»¶åŸã«èªåçã«ããŠã³ããŒããå詊è¡ããããšãã§ããŸãã
ããŠã³ããŒããµã€ãºãæé©åãã
垯åå¹ ã®æ¶è²»ãæå°éã«æããããŠã³ããŒãé床ãåäžãããããã«ãããŠã³ããŒããããã¡ã€ã«ã®ãµã€ãºãæé©åããŠãã ãããããã¯ãç»åãå§çž®ããããJavaScriptããã³CSSãã¡ã€ã«ãæå°åããããå¹ççãªããŒã¿åœ¢åŒã䜿çšãããããããšã§è¡ããŸãã
ãã£ãã·ã³ã°æŠç¥ã䜿çšãã
ããŠã³ããŒãããããŒã¿ãå¹ççã«ä¿åãããè¿ éã«ååŸã§ããããã«ã广çãªãã£ãã·ã³ã°æŠç¥ãå®è£ ããŠãã ããããã£ãã·ã¥APIã䜿çšããŠããŠã³ããŒãããããŒã¿ãä¿åããé©åãªãã£ãã·ã¥æå¹æéããªã·ãŒãèšå®ããŸãã
培åºçã«ãã¹ããã
ããŸããŸãªããã€ã¹ããããã¯ãŒã¯æ¡ä»¶ã§ããã¯ã°ã©ãŠã³ããã§ããã®å®è£ ã培åºçã«ãã¹ãããŠãç°ãªãç°å¢ã§ç¢ºå®ã«æ©èœããããšã確èªããŠãã ããããã©ãŠã¶ã®éçºè ããŒã«ã䜿çšããŠããããã¯ãŒã¯ãã©ãã£ãã¯ãç£èŠããåé¡ããããã°ããŸãã
ããã¯ã°ã©ãŠã³ããã§ããã«é¢ããã°ããŒãã«ãªèæ ®äºé
ã°ããŒãã«ãªãªãŒãã£ãšã³ã¹åãã«ããã¯ã°ã©ãŠã³ããã§ãããå®è£ ããå Žåãæ¬¡ã®èŠå ãèæ ®ããããšãéèŠã§ãã
ãããã¯ãŒã¯æ¥ç¶æ§
ãããã¯ãŒã¯æ¥ç¶æ§ã¯ãäžçã®å°åã«ãã£ãŠå€§ããç°ãªããŸããäžéšã®å°åã§ã¯ãã€ã³ã¿ãŒãããã¢ã¯ã»ã¹ãå¶éãããŠããããä¿¡é Œã§ããªãå ŽåããããŸãããããã¯ãŒã¯ã®å€åã«åŒ·ãããªãã©ã€ã³ã·ããªãªãé©åã«åŠçã§ããããã«ããã¯ã°ã©ãŠã³ããã§ããã®å®è£ ãèšèšããããšãéèŠã§ãã
ããŒã¿ã³ã¹ã
ããŒã¿ã³ã¹ããå°åã«ãã£ãŠå€§ããç°ãªãå ŽåããããŸããäžéšã®å°åã§ã¯ããŒã¿ãé«äŸ¡ã§ããããŠãŒã¶ãŒã¯å€§ããªãã¡ã€ã«ãããŠã³ããŒãããããšã«æ¶æ¥µçãããããŸããããŠãŒã¶ãŒãããŠã³ããŒãããããŒã¿éãå¶åŸ¡ããããŒã¿ã³ã¹ããäœãæé垯ã«ããŠã³ããŒããã¹ã±ãžã¥ãŒã«ããããã®ãªãã·ã§ã³ãæäŸããããšãæ€èšããŠãã ããã
ããŒã«ãªãŒãŒã·ã§ã³
ããŸããŸãªèšèªãæåçå奜ããµããŒãããããã«ãã¢ããªã±ãŒã·ã§ã³ãããŒã«ã©ã€ãºããŠãã ãããããã«ã¯ãUIèŠçŽ ã®ç¿»èš³ãæ¥ä»ãšæå»ã®åœ¢åŒã®é©å¿ãé©åãªæž¬å®åäœã®äœ¿çšãªã©ãå«ãŸããŸãã
ã¢ã¯ã»ã·ããªãã£
ã¢ããªã±ãŒã·ã§ã³ãé害ãæã€ãŠãŒã¶ãŒã«ãšã£ãŠã¢ã¯ã»ã¹å¯èœã§ããããšã確èªããŠãã ãããããã«ã¯ãç»åã®ä»£æ¿ããã¹ãã®æäŸãã»ãã³ãã£ãã¯HTMLã®äœ¿çšãã¢ããªã±ãŒã·ã§ã³ãããŒããŒãã§ã¢ã¯ã»ã¹å¯èœã§ããããšã®ç¢ºèªãªã©ãå«ãŸããŸãã
é«åºŠãªãã¯ããã¯ãšèæ ®äºé
ã¹ããªãŒã ã䜿çšããããã¯ã°ã©ãŠã³ããã§ããAPIã®äœ¿çš
éåžžã«å€§ããªãã¡ã€ã«ã®å Žåãã¹ããªãŒã ã䜿çšããŠããã¡ã€ã«å šäœãã¡ã¢ãªã«ããŒãããããšãªããããŠã³ããŒãäžã®ããŒã¿ãå¹ççã«åŠçã§ããŸããããã¯ããããªããªãŒãã£ãªãã¡ã€ã«ã«ç¹ã«åœ¹ç«ã¡ãŸãã
ããã¯ã°ã©ãŠã³ããã§ããã®åªå é äœä»ã
éèŠåºŠã«åºã¥ããŠããã¯ã°ã©ãŠã³ããã§ããã®åªå é äœãä»ããããšãã§ããŸããäŸãã°ãéèŠåºŠã®äœãã³ã³ãã³ãããããéèŠãªã¢ããªã±ãŒã·ã§ã³ã¢ã»ããã®ããŠã³ããŒããåªå ãããããšãã§ããŸãã
ããã¯ã°ã©ãŠã³ãåæAPIã®äœ¿çš
ããã¯ã°ã©ãŠã³ãåæAPIã¯ããŠãŒã¶ãŒãå®å®ããã€ã³ã¿ãŒãããæ¥ç¶ãæã€ãŸã§ã¢ã¯ã·ã§ã³ãå»¶æã§ããå¥ã®Web APIã§ããããã¯ãããã¯ã°ã©ãŠã³ããã§ãããšçµã¿åãããŠäœ¿çšããããšã§ããŠãŒã¶ãŒããªãã©ã€ã³ã®å Žåã§ãããŒã¿ã確å®ã«åæãããããã«ããããšãã§ããŸãã
ã»ãã¥ãªãã£ã«é¢ããèæ ®äºé
ããã¯ã°ã©ãŠã³ããã§ãããå®è£ ããéã«ã¯ãã»ãã¥ãªãã£ãžã®åœ±é¿ãèæ ®ããããšãéèŠã§ããä¿¡é Œã§ãããœãŒã¹ããã®ã¿ããŒã¿ãããŠã³ããŒããããã£ãã·ã¥ã«ä¿åããåã«ããŒã¿ãæ€èšŒããŠããããšã確èªããŠãã ããã
ããã¯ã°ã©ãŠã³ããã§ããã®å®éã®äŸ
eã©ãŒãã³ã°ãã©ãããã©ãŒã
eã©ãŒãã³ã°ãã©ãããã©ãŒã ã¯ãããã¯ã°ã©ãŠã³ããã§ããã䜿çšããŠãåŠçããããªãããã¥ã¡ã³ãããã¬ãŒã³ããŒã·ã§ã³ãªã©ã®ã³ãŒã¹ææããªãã©ã€ã³ã§ã¢ã¯ã»ã¹ã§ããããã«ããŠã³ããŒãããŸããããã«ãããåŠçã¯éå€äžãæ è¡äžãªã©ãã€ã³ã¿ãŒãããæ¥ç¶ããªããšãã§ãåŠç¿ãç¶ããããšãã§ããŸãã
ãã¥ãŒã¹ã¢ã°ãªã²ãŒã¿ãŒã¢ããª
ãã¥ãŒã¹ã¢ã°ãªã²ãŒã¿ãŒã¢ããªã¯ãããã¯ã°ã©ãŠã³ããã§ããã䜿çšããŠãããŸããŸãªãœãŒã¹ããææ°ã®ãã¥ãŒã¹èšäºãããã¯ã°ã©ãŠã³ãã§ããŠã³ããŒãããŸããããã«ããããŠãŒã¶ãŒã¯ãªãã©ã€ã³ã®ãšãã§ãåžžã«æ°ããã³ã³ãã³ãã«ã¢ã¯ã»ã¹ã§ããŸãã
鳿¥œã¹ããªãŒãã³ã°ãµãŒãã¹
鳿¥œã¹ããªãŒãã³ã°ãµãŒãã¹ã¯ãããã¯ã°ã©ãŠã³ããã§ããã䜿çšããŠããŠãŒã¶ãŒããæ°ã«å ¥ãã®æ²ããã¬ã€ãªã¹ãããªãã©ã€ã³ã§èŽãããã«ããŠã³ããŒãã§ããããã«ããŸããããã«ããããŠãŒã¶ãŒã¯é£è¡æ©ã®äžãæ¥ç¶ãå¶éãããŠããå°åãªã©ãã€ã³ã¿ãŒãããæ¥ç¶ããªããšãã§ã鳿¥œã楜ããããšãã§ããŸãã
äžè¬çãªåé¡ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°
ããã¯ã°ã©ãŠã³ããã§ãããæ©èœããªã
ããã¯ã°ã©ãŠã³ããã§ãããæåŸ éãã«æ©èœããªãå Žåã¯ã以äžã確èªããŠãã ããã
- ãµãŒãã¹ã¯ãŒã«ãŒãæ£ããç»é²ãããŠããããšã確èªããŠãã ããã
- ããŠã³ããŒãããããšããŠããURLã«ã¢ã¯ã»ã¹å¯èœã§ããããšã確èªããŠãã ããã
- ãã©ãŠã¶ã®éçºè ã³ã³ãœãŒã«ã§ãšã©ãŒããªãã確èªããŠãã ããã
- ãã©ãŠã¶ãããã¯ã°ã©ãŠã³ããã§ããããµããŒãããŠããããšã確èªããŠãã ããã
ããŠã³ããŒãã®é²æãæŽæ°ãããªã
ããŠã³ããŒãã®é²æãæŽæ°ãããªãå Žåã¯ã以äžã確èªããŠãã ããã
BackgroundFetchRegistration
ãªããžã§ã¯ãã®progress
ã€ãã³ãããªãã¹ã³ããŠããããšã確èªããŠãã ãããdownloadTotal
ããããã£ãæ£ããèšå®ãããŠããããšã確èªããŠãã ããã- ããŠã³ããŒããäžæãããŠããå¯èœæ§ã®ãããããã¯ãŒã¯ãšã©ãŒããªãã確èªããŠãã ããã
ããŠã³ããŒããããããŒã¿ããã£ãã·ã¥ã«ä¿åãããªã
ããŠã³ããŒããããããŒã¿ããã£ãã·ã¥ã«ä¿åãããªãå Žåã¯ã以äžã確èªããŠãã ããã
- ãã£ãã·ã¥ãæ£ããéããŠããããšã確èªããŠãã ããã
- ã¬ã¹ãã³ã¹ãæ£ãããã£ãã·ã¥ã«è¿œå ããŠããããšã確èªããŠãã ããã
- ãã©ãŠã¶ã®éçºè ã³ã³ãœãŒã«ã§ãšã©ãŒããªãã確èªããŠãã ããã
ããã¯ã°ã©ãŠã³ããã§ããã®æªæ¥
ããã¯ã°ã©ãŠã³ããã§ããã¯æ¯èŒçæ°ããWeb APIã§ããããã®æ©èœã¯å°æ¥çã«æ¡å€§ããå¯èœæ§ããããŸãããã©ãŠã¶ãããã¯ã°ã©ãŠã³ããã§ããã®ãµããŒããæ¹åãç¶ããã«ã€ããŠããã®æè¡ã®ããã«é©æ°çãªå¿çšãèŠãããããšãæåŸ ãããŸãã
å°æ¥ã®æœåšçãªéçºã«ã¯ä»¥äžã®ãããªãã®ããããŸãã
- ã¹ããªãŒãã³ã°ããŠã³ããŒãã®ãµããŒãåäžã
- ããŠã³ããŒãã®åªå é äœä»ãã«é¢ãããã詳现ãªå¶åŸ¡ã
- Push APIãªã©ã®ä»ã®Web APIãšã®çµ±åã
çµè«
ããã¯ã°ã©ãŠã³ããã§ããã¯ãWebã¢ããªã±ãŒã·ã§ã³ãç¹ã«PWAã®ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããããã®åŒ·åãªããŒã«ã§ããã·ãŒã ã¬ã¹ãªãªãã©ã€ã³ããŒã¿åæãå¯èœã«ããããšã§ãããã¯ã°ã©ãŠã³ããã§ããã¯ããã©ãŒãã³ã¹ãåäžããã垯åå¹ ã®æ¶è²»ãåæžããã€ã³ã¿ãŒãããæ¥ç¶ããªããšãã§ããŠãŒã¶ãŒã«ã³ã³ãã³ããšæ©èœãžã®ã¢ã¯ã»ã¹ãæäŸã§ããŸãããã®ã¬ã€ãã§æŠèª¬ãããã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ãããã¯ã°ã©ãŠã³ããã§ããã广çã«å®è£ ããçã«ã°ããŒãã«ãªãªãŒããšã¢ã¯ã»ã·ããªãã£ãæã€Webã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãã
Webãé²åãç¶ããã«ã€ããŠããªãã©ã€ã³æ©èœã¯ãŸããŸãéèŠã«ãªããŸããããã¯ã°ã©ãŠã³ããã§ããã¯ããããã¯ãŒã¯æ¥ç¶ç¶æ³ã«é¢ä¿ãªããäžçäžã®ãŠãŒã¶ãŒã®èŠæ±ã«å¿ããããšãã§ããå ç¢ã§å埩åã®ããWebã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®åŒ·åºãªåºç€ãæäŸããŸãã
å®è·µçãªæŽå¯
- å°ããå§ãã: ã¢ããªã±ãŒã·ã§ã³ã®ããŒã¿ãšæ©èœã®å°ããªãµãã»ããã«å¯ŸããŠããã¯ã°ã©ãŠã³ããã§ãããå®è£ ããããšããå§ããŠãã ããã
- éèŠãªã³ã³ãã³ããåªå ãã: ãŠãŒã¶ãŒã«ãšã£ãŠæãéèŠãªã³ã³ãã³ãã®ããŠã³ããŒãã«çŠç¹ãåœãŠãŠãã ããã
- ããã©ãŒãã³ã¹ãç£èŠãã: ããã¯ã°ã©ãŠã³ããã§ããã®å®è£ ã®ããã©ãŒãã³ã¹ã远跡ããŠãæ¹åã®äœå°ãããé åãç¹å®ããŠãã ããã
- ãŠãŒã¶ãŒãã£ãŒãããã¯ãåéãã: ãŠãŒã¶ãŒããã®ãã£ãŒãããã¯ãåéããŠã圌ãã®ããŒãºã奜ã¿ãçè§£ããŠãã ããã