ãã®è¨äºã§ã¯ãW3C ã®æ¨©é API ã使ç¨ããããã®åºæ¬çãªã¬ã¤ããæä¾ãã¾ãã ããã¯ãç¾å¨ã®ã³ã³ããã¹ãã«èµ·å ãã API ã®å©ç¨è¨±å¯ã®ç¶æ ãç §ä¼ããããã®ããã°ã©ã ã«ããæ¹æ³ãæä¾ãã¾ãã
権éãæ±ããã®ã¯å¤§å¤ã¦ã§ãä¸ã®æ¨©éã¯å¿ è¦æªã§ãããããã¦ãããã¯éçºè ã¨ãã¦å¯¾å¦ããã®ã¯ããã»ã©é¢ç½ãããã¾ããããããã«ç«ã¡åããã¾ãããã
徿¥ã¯ãæ§ã 㪠API ãç¬èªã®æ¨©éãä¸è²«æ§ã®ãªãæ¹æ³ã§æ±ã£ã¦ãã¾ãããä¾ãã°ãéç¥ API ã¯æ¨©éã®ç¶æ ã®æç¤ºçãªãã§ãã¯ã¨æ¨©éã®è¦æ±ã許å¯ãã¾ãããä½ç½®æ å ± API ã¯ã§ãã¾ããã
権é API ã¯ã権éã«é¢ããéããéçºè
ãããè¯ãã¦ã¼ã¶ã¼ã¨ã¯ã¹ããªã¨ã³ã¹ãå®è£
ã§ããããã«ããããã®ãã¼ã«ãæä¾ãã¾ãã å
·ä½çã«ã¯ãéçºè
㯠Permissions.query()
ã使ç¨ãã¦ãç¾å¨ã®ã³ã³ããã¹ãã§å
·ä½ç㪠API ã使ç¨ããæ¨©éã許å¯ããã¦ããããæå¦ããã¦ããããã¾ãã¯ããã³ãããä»ãã¦ç¹å®ã®ã¦ã¼ã¶ã¼æ¨©éãè¦æ±ããã¦ãããã調ã¹ããã¨ãã§ãã¾ãã ã¡ã¤ã³ã¹ã¬ããã§ã®æ¨©éã®ç
§ä¼ã¯åºã対å¿ãã¦ãããã¾ããã¯ã¼ã«ã¼ã§ã対å¿ãã¦ãã¾ãï¼ãã ããä¾å¤ãããã¾ãï¼ã
ã¯ãªãããã¼ã APIãéç¥ APIãããã·ã¥éç¥ APIãã¦ã§ã MIDI API ãªã©ãå¤ãã® API ã§æ¨©éã®ç §ä¼ãå¯è½ã«ãªãã¾ãããæ¨©éãå©ç¨ã§ããå¤ãã® API ã®ä¸è¦§ã¯ãAPI æ¦è¦ã§ç¤ºããã¦ãã¾ããã¾ãããã©ã¦ã¶ã¼ã®å¯¾å¿ã«ã¤ãã¦ã¯ããã¡ãã®äºææ§è¡¨ã§åããã¾ãã
Permissions
ã«ã¯ãä»ã«ã API ã®æ¨©éããªã¯ã¨ã¹ããããããã®æ¨©éãåãæ¶ãããããã¡ã½ãããããã¾ããããããã¯éæ¨å¥¨ï¼æ¨æºå¤ãã¾ãã¯åºã対å¿ãã¦ããªãï¼ã§ãã
ãã®è¨äºã§ã¯ãLocation Finder ã¨ããç°¡åãªãã¢ãã¾ã¨ãã¾ãããä½ç½®æ å ±ã使ç¨ãã¦ã¦ã¼ã¶ã¼ã®ç¾å¨å°ãç §ä¼ãããããã°ã¼ã°ã«ãããã«è¡¨ç¤ºãã¾ãã
ãµã³ãã«ãã©ã¤ãã§å®è¡ããããGithub ã§ã½ã¼ã¹ã³ã¼ããè¦ããã¨ãã§ãã¾ãã ã³ã¼ãã®å¤§é¨åã¯åç´ã§ç®ç«ããªããã®ã§ãã 以ä¸ã§ã¯æ¨©é API é¢é£ã®ã³ã¼ããè¦ã¦ããã¾ãã®ã§ãä»ã®é¨åã調ã¹ããå ´åã¯ã³ã¼ããèªåã§ç¢ºèªãã¦ãã ããã
権é API ã¸ã®ã¢ã¯ã»ã¹ã°ãã¼ãã«ãª Permissions
ãªãã¸ã§ã¯ãã¸ã®ã¢ã¯ã»ã¹ã許å¯ããããã«ãNavigator.permissions
ããããã£ããã©ã¦ã¶ã¼ã«è¿½å ããã¾ããã ç¾å¨ããã®ãªãã¸ã§ã¯ãã«ã¯ Permissions.query()
ããå«ã¾ãã¦ãã¾ããããæçµçã«ã¯æ¨©éã®ç
§ä¼ãè¦æ±ãããã³åãæ¶ãã®ããã®ã¡ã½ãããå«ã¾ãã¾ãã ä¸è¨åç
§ã
ãã®ä¾ã§ã¯ãPermissions ã®æ©è½ã¯ handlePermission()
ã¨ãã 1 ã¤ã®é¢æ°ã«ãã£ã¦å¦çããã¾ãã ããã¯ãPermissions.query()
ã使ç¨ãã¦æ¨©éã®ç¶æ
ãç
§ä¼ãããã¨ããå§ã¾ãã¾ãã Promise ã解決ãããã¨ãã«è¿ããã PermissionStatus
ãªãã¸ã§ã¯ãã® state
ããããã£ã®å¤ã«å¿ãã¦ã次ã®ããã«åå¿ã¯ç°ãªãã¾ãã
"granted"
ï¼ä»ä¸ï¼
[Geolocation ãæå¹ã«ããï¼Enable Geolocationï¼] ãã¿ã³ã¯é表示ã§ãã ããã¯ãGeolocation ããã§ã«ã¢ã¯ãã£ãã«ãªã£ã¦ããå ´åã¯å¿ è¦ãªãããã§ãã
"prompt"
ï¼ããã³ããï¼
[Geolocation ãæå¹ã«ãã] ãã¿ã³ã¯é表示ã§ãã ããã¯ãã¦ã¼ã¶ã¼ã« Geolocation ã®æ¨©éãä»ä¸ããããã«æ±ããããã³ããã表示ãããå ´åã¯å¿
è¦ãªãããã§ãã Geolocation.getCurrentPosition()
颿°ãå®è¡ããã¦ã¼ã¶ã¼ã«æ¨©éãæ±ããããã³ããã表示ãã¾ãã ããã¯ã権éãä»ä¸ããã¦ããå ´åãrevealPosition()
颿°ãå®è¡ãï¼å°å³ã表示ãã¾ãï¼ã権éãæå¦ããã¦ããå ´åãpositionDenied()
颿°ãå®è¡ãã¾ãï¼[Geolocation ãæå¹ã«ãã] ãã¿ã³ã表示ãã¾ãï¼ã
"denied"
ï¼æå¦ï¼
[Geolocation ãæå¹ã«ãã] ãã¿ã³ã表示ãã¾ãï¼ãã¼ã¸ãæåã«èªã¿è¾¼ã¾ããã¨ãã«ã権éã®ç¶æ ããã®ãªãªã¸ã³ã«å¯¾ãã¦æ¢ã«æå¦ã«è¨å®ããã¦ããå ´åãããã®ã³ã¼ãã«ããå¿ è¦ãããã¾ãï¼ã
function handlePermission() {
navigator.permissions.query({ name: "geolocation" }).then((result) => {
if (result.state === "granted") {
report(result.state);
geoBtn.style.display = "none";
} else if (result.state === "prompt") {
report(result.state);
geoBtn.style.display = "none";
navigator.geolocation.getCurrentPosition(
revealPosition,
positionDenied,
geoSettings,
);
} else if (result.state === "denied") {
report(result.state);
geoBtn.style.display = "inline";
}
result.addEventListener("change", () => {
report(result.state);
});
});
}
function report(state) {
console.log(`Permission ${state}`);
}
handlePermission();
権éè¨è¿°å
Permissions.query()
ã¡ã½ããã¯å¼æ°ã¨ã㦠PermissionDescriptor
è¾æ¸ãåãã¾ã â ããã¯é¢å¿ã®ãã API ã®ååãå«ã¿ã¾ãã ããã¤ãã® API ã¯ãæ¢å®ã® PermissionDescriptor
ããç¶æ¿ãããè¿½å æ
å ±ãå«ãã ãããè¤é㪠PermissionDescriptor
ãæã£ã¦ãã¾ãã ä¾ãã°ãPushPermissionDescriptor
ã«ã¯ãuserVisibleOnly
ã true
ã false
ããæå®ããè«çå¤ãå«ããå¿
è¦ãããã¾ãã
ä¸è¨ã®ã³ã¼ãã«ã¯ãchange
ã¤ãã³ããå¾
ã¡åãã PermissionStatus
ãªãã¸ã§ã¯ãã«ã¢ã¿ããããã¦ãããã¨ã«æ°ä»ãã§ãããã ããã«ãããé¢å¿ã®ãã API ã®æ¨©éã®ç¶æ
ã®å¤æ´ã«å¯¾å¿ã§ããããã«ãªãã¾ãã ç¾æç¹ã§ã¯ãç¶æ
ã®å¤åãå ±åãã¦ããã ãã§ãã
ç¾æç¹ã§ã¯ãããã¯ç§ãã¡ããã§ã«æã£ã¦ãããã®ä»¥ä¸ã®ãã®ãæä¾ãããã®ã§ã¯ããã¾ããã æ¨©éã®ããã³ããããä½ç½®ã決ãã¦å ±æããªããã¨ã鏿ããå ´åï¼æ¨©éãæå¦ããå ´åï¼ããã©ã¦ã¶ã¼ã®ã¡ãã¥ã¼ãªãã·ã§ã³ã使ç¨ããªãã¨æ¨©éã®ããã³ããã«æ»ããã¨ã¯ã§ãã¾ããã
ãµã¤ãããã®æ¨©éãå¼·å¶çã«ãªã¯ã¨ã¹ããããåãæ¶ãããããæ©è½ã追å ããææ¡ãããã¾ãããç¨éãä¸æç¢ºã§ãããã¨ãããã©ã¦ã¶ã¼ãã³ãã¼ããã®å対ã«ç´é¢ãã¦ãããã¨ããããã¾ãé²å±ãã¦ãã¾ããã permissions.request()
ã®åé¤ã¨ permissions.revoke()
ã®ä¸»è¦ãªä»æ§æ¸ããã®åé¤ã«é¢ããè°è«ãã覧ãã ããã
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4