LibNotify için, yüklediği JSON dosyası yanlış uzantı kimliğine sahip. Uzantı kimliğini doğru olana güncellemek sorunu düzeltir.
.config/google-chrome/NativeMessagingHosts
(Google Chrome için) veya .config/chromium/NativeMessagingHosts
(Chromium için ) adresine gidin . JSON dosyasını klasörde açın ve allowed_origins
bölümde uzantı kimliğine izin verdiğine dikkat edin gphchdpdmccpjmpiilaabhpdfogeiphf
. Ancak, uzantı kimliği (en azından benim durumumda, ancak herkes için aynı olmalı) aslında epckjefillidgmfmclhcbaembhpdeijg
.
Bunu düzeltmek için, yanlış uzantı kimliğini doğru olanla değiştirin veya arkasından virgül ve doğru uzantı kimliği ekleyin. Şahsen ikinci seçeneği seçtim ve işte JSON dosyam şöyle görünüyor:
{
"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/"
]
}
EDIT: Yapılması gereken tek değişiklik bu değil. Uzantı, Chrome (ium) ve muhtemelen diğer tarayıcılarda HTML5 bildirimleri lehine kaldırılan ve kaldırılan Webkit bildirimlerine dayanmaktadır. Bu nedenle, google-chrome/default/Extensions/epckjefillidgmfmclhcbaembhpdeijg/1.0_0/notify_hook.js
güncellenmesi gerekiyor. Bunun için kısa bir senaryo yazdım, ancak bildirimi görüntülemek dışında standardın çoğunu bozuyor. Dosyadaki her şeyi aşağıdakilerle değiştirin (halen kullanılan siteler için temel destek eklendi window.webkitNotifications
ve (umarım) geliştirilmiş görüntü desteği) (izin desteği eklendi):
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) + "/";
}
chrome://flags/#enable-native-notifications
.