çŸä»£ã®Webéçºã«ãããããŒããã·ã§ã³APIã®éèŠãªåœ¹å²ãæ¢ãããã©ãŠã¶ããŠãŒã¶ãŒã®ãã©ã€ãã·ãŒãä¿è·ããªããæš©éã管çããæ¹æ³ãåæããŸãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãšéçºè ã®ãã¹ããã©ã¯ãã£ã¹ãžã®åœ±é¿ãçè§£ããŸãã
ããŒããã·ã§ã³APIïŒãã©ãŠã¶ã®æš©é管çãšãŠãŒã¶ãŒãã©ã€ãã·ãŒã®ãã©ã³ã¹
仿¥ã®çžäºæ¥ç¶ãããããžã¿ã«ç°å¢ã«ãããŠãWebã¢ããªã±ãŒã·ã§ã³ã¯ãŸããŸã匷åãªãã©ãŠã¶æ©èœãå©çšããŠãããè±ãã§ã€ã³ã¿ã©ã¯ãã£ããªãšã¯ã¹ããªãšã³ã¹ãæäŸããŠããŸããå人ã®äœçœ®æ å ±ãç¹å®ããŠããŒãœãã©ã€ãºããããµãŒãã¹ãæäŸãããããã€ã¯ãã«ã¡ã©ãä»ãããªã¢ã«ã¿ã€ã éä¿¡ãå¯èœã«ããããšããããã®æ©èœã¯éåžžã«è²Žéã§ãããããããã®ãããªåã«ã¯é倧ãªè²¬ä»»ã䌎ããŸããããã¯ãŠãŒã¶ãŒã®ãã©ã€ãã·ãŒã®ä¿è·ã§ããããã§ãããŒããã·ã§ã³APIãéèŠãªã³ã³ããŒãã³ããšããŠç»å Žãããã©ãŠã¶ã®æ©èœãéçºè ã®ããŒãºããããŠãŠãŒã¶ãŒãã©ã€ãã·ãŒã®åºæ¬çæš©å©ãšã®éã®æŽç·Žãããæ©æž¡ã圹ãæãããŸãã
æš©é管çã®å¿ èŠæ§ã®çè§£
ããŒããã·ã§ã³APIèªäœã«æ·±ãå ¥ãåã«ãå ç¢ãªæš©é管çããã¯ãèŽ æ²¢ã§ã¯ãªãå¿ èŠäžå¯æ¬ ã§ããçç±ãçè§£ããããšãéèŠã§ããæŽå²çã«ããŠã§ããµã€ãã¯ãã°ãã°ããŠãŒã¶ãŒã®æç€ºçãªä»å ¥ãã»ãšãã©ãªããŸãŸãæ©å¯æ§ã®é«ããŠãŒã¶ãŒããŒã¿ãããã€ã¹æ©èœã«ã¢ã¯ã»ã¹ã§ããŸãããããã¯ãã©ã€ãã·ãŒãžã®æžå¿µã®é«ãŸãã«ã€ãªããããŠãŒã¶ãŒã¯æŸåãããããŒã¿ãæªçšãããŠãããšæããŠããŸããããšãŒãããã®äžè¬ããŒã¿ä¿è·èŠåïŒGDPRïŒãã¢ã¡ãªã«ã®ã«ãªãã©ã«ãã¢å·æ¶è²»è ãã©ã€ãã·ãŒæ³ïŒCCPAïŒã®ãããªåœéçãªããŒã¿ä¿è·èŠå¶ã¯ããããã®æžå¿µãæ³å¶åããå人ããŒã¿ã«å¯Ÿããéææ§ãšãŠãŒã¶ãŒã³ã³ãããŒã«ã矩åä»ããŠããŸãã
仿¥ã®ãŠãŒã¶ãŒã¯ãèªèº«ã®ããžã¿ã«ãããããªã³ãã«ã€ããŠããæèããŠãããããã€ã¹ãå人æ å ±ãžã®åºç¯ãªã¢ã¯ã»ã¹ãèš±å¯ããããšã«æ£åœãªãããããæããŠããŸãã圌ãã¯ãã©ã®ãããªããŒã¿ãåéãããŠããããã©ã®ããã«äœ¿çšãããŠãããã«ã€ããŠã®éææ§ãšããã€ã§ãã¢ã¯ã»ã¹ãåé€ã§ããèœåãæåŸ ããŠããŸããéçºè ã«ãšã£ãŠãããã¯æé»ã®åæãããæç€ºçã§æ å ±ã«åºã¥ãããŠãŒã¶ãŒåæãžãšç§»è¡ããããšãæå³ããŸãã
ããŒããã·ã§ã³APIãšã¯ïŒ
ããŒããã·ã§ã³APIã¯ãWebã¢ããªã±ãŒã·ã§ã³ãããŠãŒã¶ãŒãããŸããŸãªãã©ãŠã¶æ©èœã«å¯ŸããŠä»äžãŸãã¯æåŠããæš©éã®ã¹ããŒã¿ã¹ãç §äŒããããã®æšæºåãããããã°ã©ã å¯èœãªæ¹æ³ãæäŸããŸããããããã¢ã¯ã»ã¹è©Šè¡ã«å¯ŸããŠãã©ãŠã¶ã®ãã€ãã£ãã§ãã°ãã°äŸµå ¥çãªæš©éããã³ããã«äŸåãã代ããã«ãããŒããã·ã§ã³APIã«ãããéçºè ã¯ä»¥äžã®ããšãå¯èœã«ãªããŸãã
- æš©éã®çŸåšã®ã¹ããŒã¿ã¹ãç §äŒããïŒéçºè ã¯ããŠãŒã¶ãŒãæš©éãä»äžããããæåŠãããããŸãã¯æš©éããŸã ãããã³ãããïŒãŠãŒã¶ãŒããŸã 質åãããŠããªãããšãæå³ããïŒã§ãããã確èªã§ããŸãã
- æš©éã®å€æŽããªãã¹ã³ããïŒAPIã¯ããŠãŒã¶ãŒã®æš©éã¹ããŒã¿ã¹ã倿Žããããšãã«ã¢ããªã±ãŒã·ã§ã³ã«éç¥ã§ãããããåçãªUIæŽæ°ãåèªèšŒãããŒãå¯èœã«ãªããŸãã
- æš©éãïŒéæ¥çã«ïŒèŠæ±ããïŒAPIèªäœã¯çŽæ¥çãªAPIåŒã³åºããšåãæ¹æ³ã§æš©éãèŠæ±ããããã§ã¯ãããŸãããããããã³ãããã¹ããŒã¿ã¹ãç §äŒãããšãéåžžããã©ãŠã¶ã®ãã€ãã£ãããã³ããã¡ã«ããºã ãããªã¬ãŒãããŸãã
ãã®APIã¯ããã©ãŠã¶ããããã®èŠæ±ãåŠçããæ¹æ³ãæšæºåããããŸããŸãªãŠã§ããµã€ããã¢ããªã±ãŒã·ã§ã³éã§ããäžè²«ãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«ã€ãªãããŸãã
APIã«ãã£ãŠç®¡çãããäž»èŠãªæš©é
ããŒããã·ã§ã³APIã¯ããŠãŒã¶ãŒã®åæãå¿ èŠãšããæ©å¯æ§ã®é«ãæ©èœã®å¢å ãããªã¹ãããµããŒãããŠããŸããæãäžè¬çã§åœ±é¿åã®ãããã®ã®äžéšã以äžã«ç€ºããŸãã
1. äœçœ®æ å ±
ãŠãŒã¹ã±ãŒã¹ïŒãããã³ã°ã¢ããªã±ãŒã·ã§ã³ãããŒã«ã«ããžãã¹æ€çŽ¢ããŸãã¯è¿æ¥åºŠã«åºã¥ããããŒãœãã©ã€ãºãããã³ã³ãã³ããªã©ãäœçœ®æ å ±ãå©çšãããµãŒãã¹ãæäŸããŸããããšãã°ãé è»ãµãŒãã¹ã¢ããªã¯ãã©ã€ããŒãšæ¥ç¶ããããã«ããªãã®å Žæãå¿ èŠãšããŸãããŸãã¯ã倩æ°ã¢ããªã¯å°åããšã®äºå ±ãæäŸããå ŽåããããŸãã
ãã©ã€ãã·ãŒãžã®åœ±é¿ïŒãŠãŒã¶ãŒã®æ£ç¢ºãªäœçœ®æ å ±ãžã®ã¢ã¯ã»ã¹ã¯ã圌ãã®æ¥ã ã®ã«ãŒãã³ãã©ãã«äœã¿ãåããæ è¡ãããã«ã€ããŠå€ãã®ããšãæããã«ããããšãã§ããŸããç¡å¶éã®ã¢ã¯ã»ã¹ã¯é倧ãªãã©ã€ãã·ãŒãªã¹ã¯ããããããŸãã
ããŒããã·ã§ã³APIã®åœ¹å²ïŒéçºè
ã¯ãnavigator.permissions.query({ name: 'geolocation' })
ã䜿çšããŠããã©ãŠã¶ããŠãŒã¶ãŒã®äœçœ®æ
å ±ã«ã¢ã¯ã»ã¹ããæš©éãæã£ãŠãããã©ããã確èªã§ããŸããã¹ããŒã¿ã¹ããããã³ãããã®å Žåãäœçœ®æ
å ±ãèŠæ±ãããšãã©ãŠã¶ã®ãã€ãã£ãããã³ãããããªã¬ãŒãããŸããããã«ãããã¢ããªã±ãŒã·ã§ã³ã¯ãäœçœ®æ
å ±ãžã®ã¢ã¯ã»ã¹ãæåŠããããããŸã ä»äžãããŠããªãç¶æ³ã«é©åã«å¯ŸåŠã§ããŸããããšãã°ãä»£æ¿æ©èœãæäŸããããäœçœ®æ
å ±ãå¿
èŠãªçç±ã説æãããããããšãã§ããŸãã
2. éç¥
ãŠãŒã¹ã±ãŒã¹ïŒãã©ãŠã¶ã¿ããã¢ã¯ãã£ãã§ãªãå Žåã§ããã¿ã€ã ãªãŒãªæŽæ°ãã¢ã©ãŒãããŸãã¯ãªãã€ã³ããŒã§ãŠãŒã¶ãŒããšã³ã²ãŒãžããŸãããœãŒã·ã£ã«ã¡ãã£ã¢ã®éç¥ããã¥ãŒã¹ã¢ã©ãŒãããŸãã¯ä»åŸã®äºå®ã®ãªãã€ã³ããŒãèããŠã¿ãŠãã ããã
ãã©ã€ãã·ãŒãžã®åœ±é¿ïŒæãŸãªãéç¥ã§ãŠãŒã¶ãŒãã¹ãã åããããšã¯ãäŸµå ¥çã§ããããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãäœäžãããå¯èœæ§ããããŸããæªæã®ãããµã€ãã¯ããã£ãã·ã³ã°ã欺ççãªåºåã«éç¥ã䜿çšããå¯èœæ§ããããŸãã
ããŒããã·ã§ã³APIã®åœ¹å²ïŒAPIã䜿çšãããšãnavigator.permissions.query({ name: 'notifications' })
ã§éç¥ã®ã¹ããŒã¿ã¹ã確èªã§ããŸããããã«ãããéçºè
ã¯ãŠãŒã¶ãŒã«éç¥èŠæ±ã§æ°Ÿæ¿«ãããããšãé¿ãããŠãŒã¶ãŒãåæããå¯èœæ§ãé«ãå Žåã«ã®ã¿ããã³ããã衚瀺ã§ããŸãã
3. ã«ã¡ã©ãšãã€ã¯ãžã®ã¢ã¯ã»ã¹
ãŠãŒã¹ã±ãŒã¹ïŒãããªäŒè°ãã©ã€ãã¹ããªãŒãã³ã°ãé³å£°éè©±ãæ¡åŒµçŸå®ãšã¯ã¹ããªãšã³ã¹ããªã¢ã«ã¿ã€ã ã³ã³ãã³ãäœæãå¯èœã«ããŸããZoomãGoogle Meetãªã©ã®ãã©ãããã©ãŒã ãããããªç·šéçšã®ã¯ãªãšã€ãã£ãããŒã«ã¯ããããã«å€§ããäŸåããŠããŸãã
ãã©ã€ãã·ãŒãžã®åœ±é¿ïŒãŠãŒã¶ãŒã®ã«ã¡ã©ãšãã€ã¯ãžã®äžæ£ã¢ã¯ã»ã¹ã¯ãæ·±å»ãªãã©ã€ãã·ãŒäŸµå®³ã§ãããç£èŠãå人æ å ±ããã³èåã®æªçšã«ã€ãªããå¯èœæ§ããããŸãã
ããŒããã·ã§ã³APIã®åœ¹å²ïŒããŒããã·ã§ã³APIã«ãããéçºè
ã¯ã«ã¡ã©ãšãã€ã¯ãžã®ã¢ã¯ã»ã¹ïŒäŸïŒnavigator.permissions.query({ name: 'camera' })
ããã³navigator.permissions.query({ name: 'microphone' })
ïŒã®ã¹ããŒã¿ã¹ã確èªã§ããŸããããã¯ããŠãŒã¶ãŒããããã®æ©å¯æ§ã®é«ãå
¥åãžã®ã¢ã¯ã»ã¹ãèš±å¯ãããŠããã¢ããªã±ãŒã·ã§ã³ã確èªããã³ç®¡çã§ãããããä¿¡é Œãæ§ç¯ããäžã§éèŠã§ãã
4. ãã«ã¹ã¯ãªãŒã³API
ãŠãŒã¹ã±ãŒã¹ïŒãã©ãŠã¶ã®ã¯ããŒã ïŒããŒã«ããŒãªã©ïŒãã³ã³ãã³ããé ããªãããã«ããããªã®èŠèŽãã²ãŒã ã®ãã¬ã€ããã¬ãŒã³ããŒã·ã§ã³ã®è¡šç€ºãªã©ãæ²¡å ¥åã®ãšã¯ã¹ããªãšã³ã¹ãæäŸããŸãã
ãã©ã€ãã·ãŒãžã®åœ±é¿ïŒã«ã¡ã©ãäœçœ®æ å ±ã»ã©æ©å¯æ§ã¯é«ããããŸãããããã«ã¹ã¯ãªãŒã³ã¢ãŒãã«å ¥ãããšã¯ããã©ãŠã¶ã®ã¢ãã¬ã¹ããŒãšã³ã³ãããŒã«ãé ãããšã«ãã£ãŠãæªæã®ããã³ã³ãã³ãããã£ãã·ã³ã°ã®è©Šã¿ãåœè£ ããããã«äœ¿çšãããããšããããŸãããŠãŒã¶ãŒã¯ãã®ç¶æ ãèªèããå¶åŸ¡ã§ããå¿ èŠããããŸãã
ããŒããã·ã§ã³APIã®åœ¹å²ïŒAPIã¯ãã«ã¹ã¯ãªãŒã³æš©éã®ã¹ããŒã¿ã¹ãç §äŒã§ããç¹ã«WebããŒãžã«ãã£ãŠãã«ã¹ã¯ãªãŒã³ã¢ãŒããéå§ãããŠããå Žåãéçºè ããŠãŒã¶ãŒããã«ã¹ã¯ãªãŒã³ã¢ãŒããèªèããåæããŠããããšã確èªããã®ã«åœ¹ç«ã¡ãŸãã
5. ãã®ä»ã®æš©é
Webãé²åããã«ã€ããŠãããŒããã·ã§ã³APIã¯ãã¯ãªããããŒãã¢ã¯ã»ã¹ãUSBããã€ã¹ã¢ã¯ã»ã¹ãããã³ãã®ä»å¯èœæ§ã®ããæ©èœãå«ãããã«ãªãããããã®ç®¡çãæšæºåãããŠãŒã¶ãŒã®ãã©ã€ãã·ãŒãä¿è·ããããšãç®æšãšããŠããŸãã
ããŒããã·ã§ã³APIã®ä»çµã¿ïŒéçºè ã®èŠç¹
ããŒããã·ã§ã³APIã¯äž»ã«navigator.permissions
ãªããžã§ã¯ããä»ããŠã¢ã¯ã»ã¹ãããŸããã³ã¢ã¡ãœããã¯query()
ã§ãç
§äŒããæš©éã®ååãæå®ãããªããžã§ã¯ããåãåããŸããããã¯PermissionStatus
ãªããžã§ã¯ãã«è§£æ±ºãããPromise
ãè¿ããŸãã
PermissionStatus
ãªããžã§ã¯ãã«ã¯2ã€ã®äž»èŠãªããããã£ããããŸãã
state
ïŒçŸåšã®æš©éã¹ããŒã¿ã¹ã瀺ãæååãå¯èœãªå€ã¯æ¬¡ã®ãšããã§ãã'granted'
ïŒãŠãŒã¶ãŒãæç€ºçã«ãã®æš©éãä»äžããŸããã'denied'
ïŒãŠãŒã¶ãŒãæç€ºçã«ãã®æš©éãæåŠããŸããã'prompt'
ïŒãŠãŒã¶ãŒã¯ãŸã ãã®æš©éãæ±ããããŠããªãããæš©éãååºŠèŠæ±ã§ããŸãã
onchange
ïŒæš©éã¹ããŒã¿ã¹ã倿Žããããšãã«åŒã³åºãããã€ãã³ããã³ãã©ãŒãããã¯ãUIãæŽæ°ãããããŠãŒã¶ãŒãæš©éãåé€ããå Žåã«å床ããã³ããã衚瀺ãããããããã«éåžžã«åœ¹ç«ã¡ãŸãã
äŸïŒäœçœ®æ å ±æš©éã®ç¢ºèª
async function checkGeolocationPermission() {
if (!navigator.permissions) {
console.log('Permissions API not supported.');
return;
}
try {
const permissionStatus = await navigator.permissions.query({ name: 'geolocation' });
console.log(`Geolocation permission state: ${permissionStatus.state}`);
permissionStatus.onchange = function() {
console.log(`Geolocation permission state changed to: ${this.state}`);
// Update UI or take action based on the new state
};
if (permissionStatus.state === 'granted') {
// Proceed to get location
navigator.geolocation.getCurrentPosition(showPosition);
} else if (permissionStatus.state === 'denied') {
// Inform user location is not available
alert('Location access is denied. Please enable it in browser settings to use this feature.');
} else { // 'prompt'
// Optionally, you could trigger a prompt here, or wait for user interaction
console.log('Geolocation permission is prompt. User can be asked.');
// Example: Button click could trigger prompt
// document.getElementById('getLocationButton').onclick = () => {
// navigator.geolocation.getCurrentPosition(showPosition, showError);
// };
}
} catch (error) {
console.error('Error querying geolocation permission:', error);
}
}
function showPosition(position) {
console.log("Latitude: " + position.coords.latitude +
"
Longitude: " + position.coords.longitude);
}
function showError(error) {
switch(error.code) {
case error.PERMISSION_DENIED:
console.error("User denied the request for Geolocation.");
break;
case error.POSITION_UNAVAILABLE:
console.error("Location information is unavailable.");
break;
case error.TIMEOUT:
console.error("The request to get user location timed out.");
break;
case error.UNKNOWN_ERROR:
console.error("An unknown error occurred.");
break;
}
}
// Call the function to check permission on page load or user interaction
checkGeolocationPermission();
`onchange`ã®å®è£
onchange
ã€ãã³ãã¯ãå¿çæ§ã®é«ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã«äžå¯æ¬ ã§ãããŠãŒã¶ãŒããããªäŒè°ã¢ããªã«ã«ã¡ã©ãžã®ã¢ã¯ã»ã¹ãä»äžãããšæ³åããŠãã ãããåŸã§ãã©ãŠã¶èšå®ãéããŠãããåé€ããããšã«ããå Žåãã¢ããªã±ãŒã·ã§ã³ã¯ããã«ãã®å€æŽãæ€åºããã«ã¡ã©é¢é£æ©èœãç¡å¹ã«ããŠããŠãŒã¶ãŒã«æç¢ºãªãã£ãŒãããã¯ãæäŸããå¿
èŠããããŸãã
ãŠãŒã¶ãŒããããªé話ãéå§ãããã®åŸé¢ããŠãåŸã§ã«ã¡ã©ãžã®ã¢ã¯ã»ã¹ãåé€ããã·ããªãªãèããŠã¿ãŸããããonchange
ã€ãã³ããçºçããã¢ããªã±ãŒã·ã§ã³ã倱ãããæš©éãæ€åºãããŠãŒã¶ãŒã«ã«ã¡ã©ãé話ã§ã¢ã¯ã»ã¹ã§ããªããªã£ãããšãéç¥ã§ããŸãããããããå床æå¹ã«ããããã«ä¿ãããããããªãã£ãŒããé©åã«çµäºãããããŸãã
ããŒããã·ã§ã³API vs çŽæ¥APIåŒã³åºã
ããŒããã·ã§ã³APIãšãæ©èœãžã®ã¢ã¯ã»ã¹ãèŠæ±ããçŽæ¥APIïŒäŸïŒnavigator.geolocation.getCurrentPosition()
ãnavigator.mediaDevices.getUserMedia()
ãNotification.requestPermission()
ïŒãåºå¥ããããšãéèŠã§ããçŽæ¥APIã¯ãç¹å®ã®ç¶æ
ã§åŒã³åºããããšãã«ããã©ãŠã¶ã®ãã€ãã£ãæš©éããã³ãããããªã¬ãŒãããã®ã§ãã
ããŒããã·ã§ã³APIã¯ãäºåãã§ãã¯ãŸãã¯ãªã¹ããŒãšããŠæ©èœããŸããããã«ãããéçºè ã¯ç©æ¥µçã§ãŠãŒã¶ãŒäžå¿ã®ã¢ãããŒãããšãããšãã§ããŸãã
- ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ïŒæ©å¯æ§ã®é«ãAPIãç²ç®çã«åŒã³åºããŠãããã³ããã§ãŠãŒã¶ãŒãé©ããã代ããã«ãéçºè ã¯æåã«æš©éã¹ããŒã¿ã¹ã確èªã§ããŸããããããä»äžæžã¿ãã§ããã°ãããã³ãããªãã§ç¶è¡ã§ããŸããããããæåŠæžã¿ãã§ããã°ããŠãŒã¶ãŒã«éç¥ããæå¹ã«ããæ¹æ³ãã¬ã€ãã§ããŸããããããããã³ãããã§ããã°ããã€ãã£ãããã³ãããããªã¬ãŒããåã«ãæš©éãå¿ èŠãªçç±ã«ã€ããŠã®ã³ã³ããã¹ããæäŸã§ããåæã®å¯èœæ§ãé«ããããšãã§ããŸãã
- ãªãœãŒã¹ç®¡çïŒãªãœãŒã¹ã倧éã«æ¶è²»ãããã確èªã®ããã«ãããã¯ãŒã¯ãªã¯ãšã¹ããå¿ èŠã«ãªãå¯èœæ§ã®ããæ©èœã®å Žåãæåã«æš©éã¹ããŒã¿ã¹ãç §äŒããããšã§ãã¢ã¯ã»ã¹ãæããã«æåŠãããŠããå Žåã«äžèŠãªæäœãé²ãããšãã§ããŸãã
éçºè åãã®ãã¹ããã©ã¯ãã£ã¹
ããŒããã·ã§ã³APIãšãã®åºç€ãšãªãååãæ¡çšããããšã¯ãä¿¡é Œæ§ãé«ããã©ã€ãã·ãŒãå°éããWebã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®éµãšãªããŸãã
1. ãŸãæš©éãæ¬¡ã«ã¢ã¯ã·ã§ã³
æš©éãå¿
èŠãªæ©èœã䜿çšããããšããåã«ãå¿
ãæš©éã¹ããŒã¿ã¹ãç
§äŒããŠãã ãããonchange
ãã³ãã©ãŒã䜿çšããŠãæš©éã®å€æŽãåžžã«ææ¡ããŠãã ããã
2. ã³ã³ããã¹ããšæ£åœåãæäŸãã
æš©éãèŠæ±ããå Žåãç¹ã«ã¹ããŒã¿ã¹ããããã³ãããã®å Žåã¯ãæš©éããªãå¿ èŠã§ãã©ã®ããã«ããŒã¿ã䜿çšããããããŠãŒã¶ãŒã«æç¢ºã«èª¬æããŠãã ãããæ©èœã®ã¢ã¯ãã£ããŒã·ã§ã³ãã¿ã³ã®è¿ãã«ããå°ããªæ å ±ã¢ã€ã³ã³ãŸãã¯çã説æã¯éåžžã«å¹æçã§ãã
åœéçãªäŸïŒã°ããŒãã«ãªæ è¡äºçŽãŠã§ããµã€ãã®å Žåãè¿ãã®ããã«ãèŠã€ããããã«äœçœ®æ å ±ãžã®ã¢ã¯ã»ã¹ãèŠæ±ããéã«ããããªãã®åšãã®ããã«ãã¢ãã©ã¯ã·ã§ã³ãç°¡åã«èŠã€ããããããã«ãäœçœ®æ å ±ãžã®ã¢ã¯ã»ã¹ãèš±å¯ããŠãã ãããããã«ãããããªãã®çŸåšã®åšèŸºå°åã«åãããæé«ã®æ è¡ååŒã確å®ã«åããããšãã§ããŸããããšè¿°ã¹ããããããŸãããããã¯ãã¢ã¯ã»ã¹ãèš±å¯ããããšããåŸãããã¡ãªãããæç¢ºã«ç€ºããŠããŸãã
3. é©åãªæ©èœäœäž
æš©éãæåŠãããå Žåã§ããæ©èœãïŒéå®çã§ã¯ãããŸããïŒæ©èœããããã«ã¢ããªã±ãŒã·ã§ã³ãèšèšããŠãã ãããããšãã°ãå°å³ã¢ããªã±ãŒã·ã§ã³ã§äœçœ®æ å ±ãžã®ã¢ã¯ã»ã¹ãæåŠãããå Žåã§ãã空çœã®ç»é¢ã衚瀺ããã®ã§ã¯ãªãããŠãŒã¶ãŒã¯æåã§å Žæãæ€çŽ¢ã§ããŸãã
4. ãŠãŒã¶ãŒã®éžæãå°éãã
ãŠãŒã¶ãŒãæš©éãæåŠããå Žåãç¹°ãè¿ãããã³ããã衚瀺ããªãã§ãã ããã代ããã«ããã©ãŠã¶èšå®ãéããŠæå¹ã«ããæ¹æ³ãæç¢ºãªæç€ºã§æäŸããŠãã ãããã¢ããªã±ãŒã·ã§ã³ã¯ããã®æåŠãèšæ¶ããããã«å¿ããŠé©å¿ããå¿ èŠããããŸãã
5. `onchange`ã䜿çšããŠãªã¢ã«ã¿ã€ã æŽæ°ãè¡ã
onchange
ã€ãã³ããæŽ»çšããŠãUIãåçã«æŽæ°ããŸãããŠãŒã¶ãŒãé話äžã«ãã€ã¯ãžã®ã¢ã¯ã»ã¹ãåé€ããå Žåããã¥ãŒã/ãã¥ãŒãè§£é€ãã¿ã³ãç¡å¹ã«ããŠããã€ã¯ãå©çšã§ããªããªã£ãããšããŠãŒã¶ãŒã«éç¥ããŸãã
6. ãã©ãŠã¶ãšããã€ã¹å šäœã§ãã¹ããã
ããŒããã·ã§ã³APIã¯æšæºã§ããããã©ãŠã¶ïŒChromeãFirefoxãSafariãEdgeïŒããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ïŒWindowsãmacOSãAndroidãiOSïŒã«ãã£ãŠãå®è£ ãæš©éããã³ããã®ãã¥ã¢ã³ã¹ãè¥å¹²ç°ãªãå ŽåããããŸãã培åºçãªãã¹ããäžå¯æ¬ ã§ãã
7. ãµãŒããŒãµã€ãæ€èšŒãæ€èšããïŒéèŠãªã¢ã¯ã·ã§ã³ã®å ŽåïŒ
éåžžã«æ©å¯æ§ã®é«ãæäœã«ã€ããŠã¯ãã¯ã©ã€ã¢ã³ããµã€ãã®æš©éãã§ãã¯ã ãã«äŸåããªãã§ãã ãããéèŠãªã¢ã¯ã·ã§ã³ãå®è¡ããåã«ããŠãŒã¶ãŒã®åæãåæ€èšŒããããåèªèšŒãããããããã®ãµãŒããŒãµã€ãããžãã¯ãå®è£ ããŠãã ããã
ãŠãŒã¶ãŒãã©ã€ãã·ãŒãšä¿¡é ŒïŒäžå¿çãªã¡ãªãã
ãã®æ žå¿ã«ãããŠãããŒããã·ã§ã³APIã¯ä¿¡é Œãæ§ç¯ããããã®ããŒã«ã§ãããŠãŒã¶ãŒãèªåã®ããŒã¿ã«å¯Ÿããã³ã³ãããŒã«ãæããèªåã®ããã€ã¹æ©èœãã©ã®ããã«äœ¿çšãããŠããããçè§£ããŠããå ŽåãWebã¢ããªã±ãŒã·ã§ã³ãšãšã³ã²ãŒãžãããšã¯ã¹ããªãšã³ã¹ãåäžãããæ å ±ãå ±æããå¯èœæ§ãé«ãŸããŸãã
ãã©ãŠã¶ã«æšæºåãããAPIãä»ããŠæš©éã管çãããããšã«ãããéçºè ã¯ãã©ã€ãã·ãŒãã€ãã¶ã€ã³ã¢ãããŒããæ¡çšããããšã奚å±ãããŸããããã¯ããã©ã€ãã·ãŒãåŸä»ãã§ã¯ãªããã¢ããªã±ãŒã·ã§ã³ã®ã¢ãŒããã¯ãã£ã«æåããçµ±åãããŠããããšãæå³ããŸãã
ãã©ã€ãã·ãŒæåŸ ã«é¢ããã°ããŒãã«ãªèŠç¹ïŒ
ãã©ã€ãã·ãŒã«é¢ãããŠãŒã¶ãŒã®æåŸ ã¯æåã«ãã£ãŠç°ãªãå ŽåãããããšãèªèããããšãéèŠã§ããåºæ¬çãªãã©ã€ãã·ãŒæš©ã¯ãŸããŸãæ®éçã«ãªã£ãŠããŸãããããŒã¿å ±æã«å¯Ÿããå ·äœçãªæžå¿µãšå¿«é©ãã®ã¬ãã«ã¯ç°ãªãå ŽåããããŸããããšãã°ïŒ
- ãšãŒãããïŒGDPRïŒïŒæç€ºçãªåæãããŒã¿æå°åãããã³å¿ããããæš©å©ã«éç¹ã眮ããŠããŸãããŠãŒã¶ãŒã¯äžè¬çã«ãã©ã€ãã·ãŒã«éåžžã«æ³šæããŠãããèªåã®æš©å©ãèªèããŠããŸãã
- åç±³ïŒCCPAãªã©ïŒïŒéææ§ãšãªããã¢ãŠãã¡ã«ããºã ã«çŠç¹ãåœãŠãŠããããã©ã€ãã·ãŒä¿è·åŒ·åãžã®æèãšéèŠãé«ãŸã£ãŠããŸãã
- ã¢ãžã¢å€ªå¹³æŽïŒèŠå¶ã¯æ¥éã«é²åããŠããŸããäžéšã®åœã§ã¯å³æ ŒãªããŒã¿ããŒã«ã©ã€ãŒãŒã·ã§ã³æ³ããããŸãããGDPRã«äŒŒããã¬ãŒã ã¯ãŒã¯ãæ¡çšããŠããåœããããŸãããŠãŒã¶ãŒã®æåŸ ããåžå Žã®æç床ãšããžã¿ã«ãªãã©ã·ãŒã«åºã¥ããŠå€§ãã倿§åããŠããŸãã
å°åã®éãã«ããããããããŒããã·ã§ã³APIã¯ãå人ããŒã¿ãšããã€ã¹ã¢ã¯ã»ã¹ã«å¯Ÿããå人ã®èªåŸæ§ãå°éããåºç€ãæäŸããŸããã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã察象ãšããéçºè ã¯ããããã®å€æ§ãªæåŸ ã念é ã«çœ®ããæè»ã§é æ ®ã®ããã·ã¹ãã ãæ§ç¯ããå¿ èŠããããŸãã
課é¡ãšå°æ¥ã®æ¹åæ§
ãã®åŒ·ã¿ã«ãããããããããŒããã·ã§ã³APIã«ã¯èª²é¡ããªãããã§ã¯ãããŸããã
- ãã©ãŠã¶å®è£ ã®ããªãšãŒã·ã§ã³ïŒæšæºåãããŠããã«ããããããããã©ãŠã¶ãæš©éããã³ãããå®è£ ãããšããžã±ãŒã¹ãåŠçããæ¹æ³ã®åŸ®åŠãªéãã«ãããäžè²«æ§ã®ãªãçµæãçããå¯èœæ§ããããŸãã
- ãŠãŒã¶ãŒã®æ··ä¹±ïŒæè¡ã«è©³ãããªããŠãŒã¶ãŒã«ãšã£ãŠã¯ãããŸããŸãªæš©éããã³ãããšãã©ãŠã¶èšå®ãçè§£ããããšã¯äŸç¶ãšããŠããŒãã«ãšãªãå¯èœæ§ããããŸããããã³ããã§æç¢ºã§ç°¡åãªèšèã䜿çšããããšãæãéèŠã§ãã
- ãã€ãã£ãããã³ãããžã®é床ã®äŸåïŒããŒããã·ã§ã³APIã¯ããã€ãã£ããã©ãŠã¶ããã³ããã®å¿ èŠæ§ããªãããã®ã§ã¯ãããŸãããããã¯ããããããã€ãã©ã®ããã«æç€ºããããã管çããã®ã«åœ¹ç«ã¡ãŸããéçºè ã¯äŸç¶ãšããŠããããã®ãã€ãã£ãã€ã³ã¿ã©ã¯ã·ã§ã³ãäžå¿ã«ãŠãŒã¶ãŒãããŒãèšèšããå¿ èŠããããŸãã
- é²åããWebæ©èœïŒæ©å¯æ§ã®é«ãããŒããŠã§ã¢ãŸãã¯ããŒã¿ãžã®ã¢ã¯ã»ã¹ãå¿ èŠãšããæ°ãããã©ãŠã¶APIãç»å Žããã«ã€ããŠãããŒããã·ã§ã³APIã¯ããããã«ããŒããããã«ç¯å²ãæ¡å€§ããå¿ èŠããããŸãã
å°æ¥ã®éçºã«ã¯ä»¥äžãå«ãŸããå¯èœæ§ããããŸãã
- ããè©³çŽ°ãªæš©éïŒæœåšçã«ããŠãŒã¶ãŒãç¹å®ã®æéãŸãã¯ã³ã³ããã¹ãïŒäŸïŒããã®ã»ãã·ã§ã³ã®ã¿ã«ã¡ã©ãžã®ã¢ã¯ã»ã¹ãèš±å¯ãããïŒã§ã¢ã¯ã»ã¹ãèš±å¯ã§ããããã«ããŸãã
- 匷åãããéçºè ããŒã«ïŒããŸããŸãªã·ããªãªã§æš©éãããŒããã¹ãããããã®ãããè¯ããããã°ããã³ã·ãã¥ã¬ãŒã·ã§ã³ããŒã«ã
- OSã¬ãã«ã®æš©éãšã®çµ±åïŒããçµ±äžããããšã¯ã¹ããªãšã³ã¹ã®ããã«ãã¢ãã€ã«ããã³ãã¹ã¯ããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®æš©éã¢ãã«ãšã®ç·å¯ãªçµ±åã
çµè«
ããŒããã·ã§ã³APIã¯ãçŸä»£ã®è²¬ä»»ããWebéçºã®ç€ã§ããéçºè ãããŠãŒã¶ãŒã®ãã©ã€ãã·ãŒãå°éãä¿è·ãããšåæã«ãè±ãã§ã€ã³ã¿ã©ã¯ãã£ããªã¢ããªã±ãŒã·ã§ã³ãäœæã§ããããã«ããŸããæš©é管çã®è€éããæœè±¡åããæšæºåãããã€ã³ã¿ãŒãã§ãŒã¹ãæäŸããããšã§ãéçºè ã«ãšã£ãŠããã»ã¹ãç°¡çŽ åããäžçäžã®ãŠãŒã¶ãŒã®éææ§ãšã³ã³ãããŒã«ãåäžãããŸãã
ããŒã¿ãã©ã€ãã·ãŒãæéèŠèŠãããæä»£ã«ãããŠãããŒããã·ã§ã³APIãæ¡çšããããšã¯ãã³ã³ãã©ã€ã¢ã³ã¹ã§ããã ãã§ãªããä¿¡é Œãæ§ç¯ããè¯å®çãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãè²ã¿ãããå®å šã§å«ççãªã€ã³ã¿ãŒãããã«è²¢ç®ããããšã§ãããã©ã€ãã·ãŒãåªå ããããŒããã·ã§ã³APIã®ãããªããŒã«ã掻çšããéçºè ã¯ãééããªããŠãŒã¶ãŒãšã®ãã匷åãªé¢ä¿ãæ§ç¯ããã°ããŒãã«ãªããžã¿ã«ããŒã±ãããã¬ã€ã¹ã§éç«ã€ã§ãããã