프로덕션 환경에서 Google 크롬 확장 프로그램이 있습니다. 프로그램의 한 부분은 chrome.notifications API를 통해 알림을 표시합니다. 이 논리를 사용하여 알림을 표시하기 시작합니다.chrome.notifications가 간헐적으로 정의되지 않았습니다.
// Expects options: { iconUrl: string, title: string, message: string }
showNotification: function (options) {
// TODO: Future version of Google Chrome will support permission levels on notifications.
if (chrome.notifications.getPermissionLevel) {
chrome.notifications.getPermissionLevel(function (permissionLevel) {
if (permissionLevel === 'granted') {
doShowNotification(options);
}
});
} else {
doShowNotification(options);
}
}
이 논리는 정상적으로 작동합니다. getPermissionLevel 함수는 아직 구현되지 않았지만 앞으로 제공 될 예정입니다. 그래서 구현되었는지 확인하고 그렇지 않다면 단순히 알림을 보여줍니다.
일부 클라이언트에서 오류가 표시됩니다. ,
Uncaught TypeError: Cannot read property 'getPermissionLevel' of undefined
이 코드는 나를 위해 완벽하게 잘 작동하기 때문 홀수, 내 테스트 케이스가 통과 :
if (chrome.notifications.getPermissionLevel) {
오류 메시지 : 오류 메시지가 chrome.notifications 다음 줄에 정의되지 않은 것을 말한다
"minimum_chrome_version": "29.0.1547.76"
이 알림을 지원하는 구글 크롬의 버전을 사용하는 모든 클라이언트를 강제해야한다 : 등 또한, 내의 manifest.json에서 다음과 같은 규칙을 가지고있다. 워드 프로세서에 따르면, http://developer.chrome.com/extensions/notifications.html, 알림 크롬 28 안정 갔다 :
Availability: Stable since Chrome 28.
또한, 나는 다음과 같은 권한을 선언 한 :
"permissions": [
"contextMenus",
"management",
"notifications",
"storage",
"identity",
"webRequest",
"webRequestBlocking"
]
내가 알림 권한을 요청하고있어 사용자 보장하고 현재 브라우저 버전을 사용 중입니다.
누구든지 chrome.notifications가 정의되지 않은 다른 이유를 알고 있습니까? 나는 그것이 간단하다는 것을 확실히 할 수 있다는 것을 알고 있지만, 나는 무엇이 일어나고 있는지 알고 싶다. 감사.
매우 가능성이 있습니다. 고맙습니다. 나는 오늘 그것을 들여다 볼 것이고, 나는 그 의견을 받아 들일 것임을 확신 할 수있다. –