LibNotify এর জন্য, এটি ইনস্টল করে এমন JSON ফাইলের ভুল এক্সটেনশন আইডি রয়েছে। সঠিকটিকে এক্সটেনশন আইডি আপডেট করা এটি ঠিক করে দেয়।
যান .config/google-chrome/NativeMessagingHosts
(Google Chrome এর জন্য) অথবা .config/chromium/NativeMessagingHosts
(ক্রোমিয়াম জন্য)। ফোল্ডারে JSON ফাইলটি খুলুন, এবং লক্ষ্য করুন যে allowed_origins
বিভাগে এটি এক্সটেনশন আইডির অনুমতি দেয় gphchdpdmccpjmpiilaabhpdfogeiphf
। যাইহোক, এক্সটেনশান আইডি (আমার ক্ষেত্রে অন্তত, কিন্তু এটা সবার জন্য সমান হওয়া উচিত) আসলে epckjefillidgmfmclhcbaembhpdeijg
।
এটি ঠিক করার জন্য, হয় ভুল এক্সটেনশন আইডিটি সঠিক একের সাথে প্রতিস্থাপন করুন, অথবা একটি কমা এবং এর পরে সঠিক এক্সটেনশন আইডি যুক্ত করুন। আমি ব্যক্তিগতভাবে পরবর্তী বিকল্পটি বেছে নিয়েছি এবং আমার জেএসওএন ফাইলটি দেখতে কেমন তা এখানে রয়েছে:
{
"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/"
]
}
সম্পাদনা: এটিই কেবল পরিবর্তন করার দরকার নেই। এক্সটেনশনটি ওয়েবকিট বিজ্ঞপ্তিগুলির উপর নির্ভর করে, যা ক্রোম (আইওএম) এবং সম্ভবত অন্যান্য ব্রাউজারগুলিতে এইচটিএমএল 5 বিজ্ঞপ্তির পক্ষে অবহিত এবং সরানো হয়েছিল। অতএব, 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) + "/";
}
chrome://flags/#enable-native-notifications
।