2018년 6월 12일부터 인라인 설치가 지원 중단됩니다. 자세한 내용은 Chromium 블로그에서 확인하세요. 게시물을 참고하세요.
일정 관련 질문
2018년 6월 12일에 변경되는 사항
2018년 6월 12일 이후에 처음 게시된 모든 Chrome 웹 스토어 항목(예: 확장 프로그램 및 앱)은 인라인 설치가 사용 중지되었습니다. '사용 중지됨' 인라인 설치 시도는 Chrome 웹 스토어의 프로그램 세부정보 페이지로 자동 리디렉션되어 설치를 완료합니다. 스토어에 최초 등록되었던 기존 상품은 변경되지 않습니다. 이 날짜 이전에 게시된
2018년 9월 12일에 변경되는 사항
사용 중지는 게시 날짜에 관계없이 모든 항목에 적용됩니다. 인라인 설치의 100% 사용자가 모든 항목에 대해 입력을 시도하면 Chrome 웹 스토어로 리디렉션되어 설치해야 합니다
2018년 9월 12일 전에 무엇을 해야 하나요?
아무것도 변경할 필요는 없지만, 설치 과정을 검토하고
chrome.webstore.install()
호출을 통해 항목의 Chrome 웹 스토어 등록정보로 바로 이동할 수 있습니다.
이렇게 하면 최상의 사용자 환경이 생성되는지 확인할 수 있습니다.
또한 새로운 Chrome 웹 스토어 다운로드 배지를 어떻게 해야 하는지에 대해 이야기해 보겠습니다
M71에서 변경되는 사항 (2018년 12월)
M71부터 Chrome은 더 이상 chrome.webstore.install()
메서드 및 호출을 지원하지 않습니다.
실패하여 사이트의 설치 흐름이 중단됩니다. 이 시점에서 API를 호출하면
JavaScript TypeError가 발생합니다. 이 날짜 이전에 API 메서드 호출을 모두 삭제해야 합니다.
인라인 설치가 사용 중지된 후
설치 과정은 어떻게 진행되나요?
사이트에서 chrome.webstore.install()
를 호출해도 Chrome에서 더 이상 대화상자를 즉시 트리거하지 않습니다.
Chrome 웹 스토어의 세부정보 페이지로 새 포그라운드 탭이 열립니다 (예:
https://chrome.google.com/webstore/detail/EXTENSION_ID
). 여기에서 사용자는
설치 프로세스가 완료되고 대화상자가 사용자에게
권한을 갖고 설치 또는 취소할 수 있습니다. 대화상자를 닫으면 탭이 Chrome에 그대로 유지됩니다.
웹 스토어로 이동합니다.
설치가 완료되었는지 어떻게 알 수 있나요?
chrome.webstore.install()
를 호출하면 오류와 함께 failureCallback이 트리거됩니다.
사용자가 Chrome 웹 스토어로 리디렉션되었다고 알리는 메시지가 표시됩니다. 이 항목은
알 수 없습니다. Chrome 71부터는
chrome.webstore.install()
가 실패하므로 failureCallback이 실행되지 않습니다.
이 API가 없어도 사이트에서 다음을 통신하여 항목이 이미 설치되었는지 감지할 수 있습니다. 확장 프로그램 및 웹사이트 간의 연결을 유지합니다. 이는 확장 프로그램 메시지와 externally_connectable 속성 값을 포함합니다.
"externally_connectable": {
"matches": ["https://www.example.com/*"]
}
// JS running on https://example.com
try {
chrome.runtime.sendMessage('EXTENSION_ID', MESSAGE, function() {
if (chrome.runtime.lastError) {
// Extension is not installed.
}
});
} catch (e) {
// Extension is not installed.
}
다음을 바꿉니다.
EXTENSION_ID
: 확장 프로그램의 ID입니다.MESSAGE
: 확장 프로그램에 전송할 메시지 문자열 또는 객체입니다.
설치 후 정보 페이지를 실행하려면 어떻게 해야 하나요?
설치 후 chrome.runtime 이벤트를 사용하여 새 탭을 엽니다. 이것은 백그라운드 페이지:
chrome.runtime.onInstalled.addListener(function listener(details) {
if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) {
chrome.tabs.create({url: "https://www.example.com/"});
chrome.runtime.onInstalled.removeListener(listener);
}
});
예외를 적용할 수 있나요?
아니요. 이 정책 변경사항은 예외 없이 Chrome 웹 스토어의 모든 항목에 적용됩니다.