Chrome मूल सूचनाएँ सक्रिय करें


11

मैं उबंटू पर Google Chrome (या क्रोमियम) का उपयोग करके काम करने के लिए मूल सूचनाएं प्राप्त करने की कोशिश कर रहा हूं, लेकिन अभी तक कोई भाग्य नहीं है।

चीजें जो मैंने पहले ही आजमाई हैं:

और मुझे याद है कि मैंने एक और विस्तार की कोशिश की है लेकिन मुझे इसका नाम याद नहीं है।

उनमें से कोई भी काम नहीं करता है। मुझे क्रोम की सामान्य सूचनाएं स्वयं प्राप्त होती रहती हैं।

मैं Ubuntu 14.04 x64 पर Google Chrome 34.0.1847.137 का उपयोग कर रहा हूं।

क्या कोई मुझे बता सकता है कि यह काम कैसे किया जाए?


1
Google Chrome Stable का नवीनतम संस्करण (अब के रूप में 59) सक्षम मूल सूचना ध्वज का समर्थन करता है, जो केवल Gnome Shell पर पूरी तरह से काम करता है। इसके माध्यम से उपलब्ध है chrome://flags/#enable-native-notifications
ईएम

जवाबों:


10

LibNotify के लिए, JSON फ़ाइल जो इसे स्थापित करती है, उसमें गलत एक्सटेंशन आईडी है। एक्सटेंशन आईडी को सही पर अपडेट करके उसे ठीक करता है।

पर जाएं .config/google-chrome/NativeMessagingHosts(गूगल क्रोम के लिए) या .config/chromium/NativeMessagingHosts(क्रोमियम के लिए)। फ़ोल्डर में JSON फ़ाइल खोलें, और ध्यान दें कि allowed_originsअनुभाग में, यह एक्सटेंशन आईडी की अनुमति देता है gphchdpdmccpjmpiilaabhpdfogeiphf। हालांकि, विस्तार आईडी (कम से कम मेरे मामले में, लेकिन यह सभी के लिए समान होना चाहिए) वास्तव में है epckjefillidgmfmclhcbaembhpdeijg

इसे ठीक करने के लिए, या तो गलत एक्सटेंशन आईडी को सही के साथ बदलें, या इसके बाद अल्पविराम और सही एक्सटेंशन आईडी जोड़ें। मैंने व्यक्तिगत रूप से बाद वाला विकल्प चुना, और यहाँ पर मेरी 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/"
  ]
}

संपादित करें: यह एकमात्र परिवर्तन नहीं है जिसे बनाने की आवश्यकता है। यह एक्सटेंशन वेबकिट सूचनाओं पर निर्भर करता है, जिन्हें क्रोम (ium) में हटा दिया गया था और HTML ब्राउज़र सूचनाओं के पक्ष में अन्य ब्राउज़र की संभावना थी। इसलिए, 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
यह काम कर रहा है और सीपीयू का उपयोग खुद ही हल हो गया है। हालाँकि, अभी भी मैं चाहता हूँ कि आवेदन में काम नहीं करता है ( वेबोग्राम )। लेकिन आपके उत्तर और प्रयास के लिए बहुत-बहुत धन्यवाद और मैं सिर्फ क्रोम के लिए देशी सूचनाओं का समर्थन करने की प्रतीक्षा करूंगा!
लुइस माथिज्सेन

कृपया मेरी टिप्पणी नीचे देखें, क्रोम 35 पर डिफ़ॉल्ट रूप से काम करता है
Konstigt

@Konstigt: ऐसा नहीं है कि सूचनाएं काम नहीं कर रही थीं; यह है कि सूचनाएं देशी लिनक्स सूचनाएं नहीं थीं, और मौजूदा समाधान (कम से कम पहले दो लिंक ऊपर) ने पदावनत पद्धति का उपयोग किया। (इसके लिए मैं व्यक्तिगत रूप से क्रोम (ium) को दोष नहीं देता।)
saiarcot895

मेरे पास कोई .config/chromium/NativeMessagingHostsफोल्डर नहीं है ।
अंपायरस्की

3
यार, आपको वास्तव में अपना स्वयं का प्लगइन लिखना चाहिए और इसे Google स्टोर पर पोस्ट करना चाहिए। यदि आप पंजीकरण के लिए $ 5 का भुगतान करने के लिए उत्सुक नहीं हैं, तो मैं इसे आपके लिए कर सकता हूं।
बलोएज मिशालिक

0

अब यह क्रोम 35 को स्थापित करने के बाद डिफ़ॉल्ट रूप से एकता पर काम करता है

http://www.webupd8.org/2014/05/google-chrome-stable-35-for-linux.html


6
वे यूनिटी नोटिफिकेशन नहीं हैं। यह क्रोम की सूचनाओं के लिए सिर्फ एक नई त्वचा है।
लुई माथिज्सेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.