Chrome 기본 알림 활성화


11

우분투에서 Chrome (또는 Chromium)을 사용하여 기본 알림을 보내려고하지만 지금까지는 운이 없습니다.

내가 이미 시도한 것 :

그리고 나는 또 다른 확장을 시도했지만 그 이름을 기억하지 못한다는 것을 기억합니다.

그들 중 누구도 작동하지 않습니다. Chrome 자체에 대한 일반적인 알림을 계속받습니다.

Ubuntu 14.04 x64에서 Chrome 34.0.1847.137을 사용하고 있습니다.

누군가이 작업을 수행하는 방법을 말해 줄 수 있습니까?


1
최신 버전의 Chrome Stable (현재 59)은 Gnome Shell에서만 완벽하게 작동하는 기본 알림 사용 플래그를 지원합니다. 를 통해 사용할 수 있습니다 chrome://flags/#enable-native-notifications.
emi

답변:


10

LibNotify의 경우, 설치하는 JSON 파일의 확장자 ID가 올바르지 않습니다. 확장 ID를 올바른 것으로 업데이트하면 수정됩니다.

로 이동 .config/google-chrome/NativeMessagingHosts(구글 크롬) 또는 .config/chromium/NativeMessagingHosts(크롬). 폴더에서 JSON 파일을 열고 allowed_origins섹션에서 확장 ID가 허용되는지 확인하십시오 gphchdpdmccpjmpiilaabhpdfogeiphf. 그러나 확장 ID (적어도 내 경우에는 모든 사람에게 동일해야 함)는 실제로 epckjefillidgmfmclhcbaembhpdeijg입니다.

이 문제를 해결하려면 잘못된 확장 ID를 올바른 확장 ID로 바꾸거나 그 뒤에 쉼표와 올바른 확장 ID를 추가하십시오. 개인적으로 후자의 옵션을 선택했으며 JSON 파일의 모양은 다음과 같습니다.

{
  "name": "com.initiated.chrome_libnotify_notifications",
  "description": "Libnotify Notifications in Chrome",
  "path": path to the location of install.sh,
  "type": "stdio",
  "allowed_origins": [
    "chrome-extension://gphchdpdmccpjmpiilaabhpdfogeiphf/",
    "chrome-extension://epckjefillidgmfmclhcbaembhpdeijg/"
  ]
}

편집 : 변경해야 할 유일한 것은 아닙니다. 확장 프로그램은 Chrome (ium) 및 HTML5 알림을 선호하는 다른 브라우저에서 더 이상 사용되지 않고 제거 된 웹킷 알림을 사용합니다. 따라서 google-chrome/default/Extensions/epckjefillidgmfmclhcbaembhpdeijg/1.0_0/notify_hook.js업데이트해야합니다. 이에 대한 간단한 스크립트를 작성했지만 알림 표시를 제외한 대부분의 표준을 위반합니다. 파일의 모든 내용을 다음으로 바꿉니다 (여전히 사용중인 사이트에 대한 기본 지원 추가 window.webkitNotifications및 이미지 지원 향상) (권한 지원 추가).

OriginalNotification = Notification

Notification = function(title, properties) {
        if (Notification.permission != "granted") {
                if (this.onError) {
                        this.onError();
                }
                return;
        }
        if (!properties.hasOwnProperty("body")) {
                properties["body"] = "";
        }
        if (!properties.hasOwnProperty("icon")) {
                properties["icon"] = "";
        }
        if (properties["icon"]) {
                properties["icon"] = getBaseURL() + properties["icon"];
        }
        document.getElementById('libnotify-notifications-transfer-dom-area').innerText = JSON.stringify({title:title, body:properties["body"], iconUrl:properties["icon"]});
        var event = document.createEvent("UIEvents");
        event.initUIEvent("change", true, true);
        document.getElementById('libnotify-notifications-transfer-dom-area').dispatchEvent(event);
        if (this.onShow) {
                this.onShow();
        }
};

Object.defineProperty(Notification, "permission", {
        get: function() {
                return OriginalNotification.permission;
        },
        set: undefined
});

Notification.requestPermission = function(callback) {
        OriginalNotification.requestPermission(callback);
}

window.webkitNotifications = {}

window.webkitNotifications.checkPermission = function() {
        return 0;
}

window.webkitNotifications.createNotification = function(image, title, body) {
        if (image) {
                image = getBaseURL() + image;
        }
        document.getElementById('libnotify-notifications-transfer-dom-area').innerText = JSON.stringify({title:title, body:body, iconUrl:image});
        var event = document.createEvent("UIEvents");
        event.initUIEvent("change", true, true);
        document.getElementById('libnotify-notifications-transfer-dom-area').dispatchEvent(event);
}

function getBaseURL() {
           return location.protocol + "//" + location.hostname + 
                   (location.port && ":" + location.port) + "/";
}

1
작동 중이며 CPU 사용량이 자체적으로 해결 된 것 같습니다. 그러나 여전히 원하는 응용 프로그램 ( Webogram ) 에서 작동하지 않습니다 . 그러나 귀하의 답변과 노력에 감사드립니다. Chrome에서 기본 알림을 지원할 때까지 기다립니다.
Louis Matthijssen

크롬 35에서 기본적으로 작동 아래에 내 의견을 참조하십시오
Konstigt

@ Konstigt : 알림이 작동하지 않았다는 것이 아닙니다. 알림은 기본 Linux 알림이 아니며 기존 솔루션 (위의 첫 번째 두 링크)은 더 이상 사용되지 않는 방법을 사용했습니다. (저는 개인적으로 Chrome (ium)을 비난하지 않습니다.)
saiarcot895

.config/chromium/NativeMessagingHosts폴더 가 없습니다 .
umpirsky

3
남자, 당신은 정말 당신의 자신의 플러그인을 작성하고 구글 스토어에 게시해야합니다. 등록을 위해 5 $를 지불하기를 간절히 원하지 않는다면, 대신 해줄 수 있습니다.
Błażej Michalik 2016 년

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.