크롬 플러그인을 빌드하는 방법
5747 단어 codenewbiejavascript
가장 중요한 부분은 실제로 비교적 간단하다는 것입니다.
html, css, js만 있으면 됩니다.
기본 설정
기본 설정이 너무 기본적이어서 내 컴퓨터를 쳐다보며 무슨 말을 하고 있는 나 자신을 발견했습니다.
Create manifest.json 파일chrome's documentation은 자세히 알아보고 싶은 경우 실제로 훌륭하고 깊이 있지만 이 플러그인의 경우 매니페스트는 기본이 됩니다.
{
"manifest_version": 2,
"name": "Chrome plugin template Devto",
"description": "Chrome plugin template Devto",
"version": "1",
"author": "Jenny Judova",
"browser_action": {
"default_title": "Fun with Flags"
},
"chrome_url_overrides": {
"newtab": "newtab.html"
},
"permissions": [
"activeTab",
"storage"
]
}
Hello World 인쇄
이제 작업을 수행하고 'Hello World'를 인쇄해 보겠습니다.
manifest.json chrome_url_overrides에서 우리는 새 탭 재정의 html 파일이 newtab.html이라고 명시했으므로 해당 파일을 만들 수 있습니다.
newtab.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
이것은 훌륭하지만 작동하는지 어떻게 확인합니까? 우리는 이것을 위해 실제로 localhost에 갈 수 없습니다. 대신 다음을 수행하십시오.
1 - chrome://extensions/로 이동합니다.
2 - 개발자 모드 토글이 켜져 있는지 확인
3 - 압축 풀기 버튼 클릭
4 - 프로젝트가 있는 폴더 선택
5 - '선택'을 클릭합니다.
6 - 새 탭 열기
팔!
이제 이 확장이 국기 및 국가 표시와 같은 작업을 수행하도록 합시다. 플래그로 재미를 판단하지 마십시오 토큰이 필요하지 않기 때문에 플래그 API를 선택했습니다.
API 호출 방법
newtab.js라는 파일을 만들고 다음을 추가하여 newtab.html에 연결해 보겠습니다.
<script type="text/javascript" src="newtab.js"></script>
본문 태그를 닫기 직전입니다. 온전한 검사를 하고 newtab.js에 추가해 봅시다.
function init() {
console.log('HI')
}
window.addEventListener('DOMContentLoaded', init)
간단한 .fetch는 API 호출을 위한 트릭을 수행해야 합니다. 이렇게:
function getAllFlags() {
fetch('https://restcountries.eu/rest/v2/all?fields=name;flag;region;nativeName;')
.then(response => response.json())
.then(response => {
flags = response
chrome.storage.local.set({ data: flags });
})
.catch(err => console.log(err))
이제 플래그에 대한 정보가 있으므로 이를 표시하는 기능과 일부 css를 추가하여 UI에 플래그를 표시할 수 있습니다. 이를 위해 project's github 을 살펴볼 가치가 있습니다.
chrome.storage.local 사용 방법
현재 확장 기능이 작동하는 방식은 새 탭을 열 때마다 새 API 호출이 발생한다는 것입니다. 우리 대부분이 매시간 12개의 탭을 여는 것을 고려하면 요청 응답을 chrome.storage.local에 저장하고 API 호출을 실행하기 전에 데이터가 있는지 확인하는 것이 더 효율적일 수 있습니다.
이를 달성하려면 다음을 사용해야 합니다.
chrome.storage.local.set 및 chrome.storage.local.get
또한 이 일반적인 함정을 피해야 합니다. manifest.json에 다음이 있는지 확인하세요.
"permissions": [
"storage"
]
로컬 스토리지에 무언가를 저장하려면 가져오기 요청에 이 행을 추가할 수 있습니다.
chrome.storage.local.set({ data: flags });
전체가 다음과 같이 표시됩니다.
fetch('https://restcountries.eu/rest/v2/all?fields=name;flag;region;nativeName;')
.then(response => response.json())
.then(response => {
console.log('empty')
flags = response
chrome.storage.local.set({ data: flags });
})
.catch(err => console.log(err))
로컬 저장소를 확인하는 기능을 추가해 보겠습니다.
function checkLocalStorage() {
chrome.storage.local.get('data', function (result) {
result.data == undefined ? isLocalStorageFull = false : isLocalStorageFull = true
getAllFlags(isLocalStorageFull)
});
}
또한 getAllFlags 함수를 다음과 같이 업데이트해 보겠습니다.
function getAllFlags(isLocalStorageFull) {
if (isLocalStorageFull) {
chrome.storage.local.get('data', function (result) {
flags = result.data
displayFlags(flags)
})
} else {
fetch('https://restcountries.eu/rest/v2/all?fields=name;flag;region;nativeName;')
.then(response => response.json())
.then(response => {
flags = response
chrome.storage.local.set({ data: flags });
displayFlags(flags)
})
.catch(err => console.log(err))
}
}
본질적으로 이것은 플러그인이 완료되었습니다. 완성된 앱here에서 자신의 css를 추가하거나 복사하여 붙여넣을 수 있습니다.
이것이 우리가 끝내는 것입니다.
Reference
이 문제에 관하여(크롬 플러그인을 빌드하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jennyjudova/how-to-build-a-chrome-plugin-4jg2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)