Chrome डेस्कटॉप सूचनाओं का उपयोग कैसे करता है ? मैं अपने खुद के कोड में उस का उपयोग करना चाहते हैं।
अपडेट : यहां एक ब्लॉग पोस्ट है जो उदाहरण के साथ वेबकिट सूचनाओं की व्याख्या करता है।
Chrome डेस्कटॉप सूचनाओं का उपयोग कैसे करता है ? मैं अपने खुद के कोड में उस का उपयोग करना चाहते हैं।
अपडेट : यहां एक ब्लॉग पोस्ट है जो उदाहरण के साथ वेबकिट सूचनाओं की व्याख्या करता है।
जवाबों:
आधुनिक ब्राउज़रों में, दो प्रकार की सूचनाएं हैं:
एपीआई कॉल समान पैरामीटर (कार्यों के अलावा - डेस्कटॉप सूचनाओं पर उपलब्ध नहीं) को लेती है, जो Google के वेब फंडामेंटल साइट पर एमडीएन और सेवा श्रमिकों के लिए अच्छी तरह से प्रलेखित हैं ।
नीचे क्रोम, फ़ायरफ़ॉक्स, ओपेरा और सफारी के लिए डेस्कटॉप सूचनाओं का एक कार्यशील उदाहरण है । ध्यान दें कि सुरक्षा कारणों से, Chrome 62 से शुरू होकर, Notification API के लिए अनुमति अब क्रॉस-ऑरिजनल iframe से नहीं मांगी जा सकती है , इसलिए हम StackOverflow के कोड स्निपेट्स का उपयोग करके इसे प्रदर्शित नहीं कर सकते। आपको अपनी साइट / एप्लिकेशन पर HTML फ़ाइल में इस उदाहरण को सहेजना होगा, और localhost://
HTTPS का उपयोग या उपयोग करना सुनिश्चित करना होगा ।
// request permission on page load
document.addEventListener('DOMContentLoaded', function() {
if (!Notification) {
alert('Desktop notifications not available in your browser. Try Chromium.');
return;
}
if (Notification.permission !== 'granted')
Notification.requestPermission();
});
function notifyMe() {
if (Notification.permission !== 'granted')
Notification.requestPermission();
else {
var notification = new Notification('Notification title', {
icon: 'http://cdn.sstatic.net/stackexchange/img/logos/so/so-icon.png',
body: 'Hey there! You\'ve been notified!',
});
notification.onclick = function() {
window.open('http://stackoverflow.com/a/13328397/1269037');
};
}
}
<button onclick="notifyMe()">Notify me!</button>
हम W3C अधिसूचना एपीआई का उपयोग कर रहे हैं । क्रोम एक्सटेंशन नोटिफिकेशन एपीआई के साथ इसे भ्रमित न करें , जो कि अलग है। क्रोम एक्सटेंशन सूचनाएं जाहिर तौर पर केवल क्रोम एक्सटेंशन में काम करती हैं, और इसके लिए उपयोगकर्ता से किसी विशेष अनुमति की आवश्यकता नहीं होती है।
W3C सूचनाएं कई ब्राउज़रों में काम करती हैं ( कैनीयूज़ पर समर्थन देखें ), और उपयोगकर्ता की अनुमति की आवश्यकता होती है। एक सर्वोत्तम अभ्यास के रूप में, बल्ले से यह अनुमति न माँगें। पहले उपयोगकर्ता को समझाएं कि वे सूचनाएं क्यों चाहते हैं और अन्य पुश सूचना पैटर्न देखेंगे ।
ध्यान दें कि Chrome इस बग के कारण लिनक्स पर अधिसूचना आइकन का सम्मान नहीं करता है ।
अधिसूचना समर्थन निरंतर प्रवाह में रहा है, जिसमें विभिन्न एपीआई पिछले वर्षों में हटाए गए हैं। यदि आप उत्सुक हैं, तो क्रोम में काम करने के लिए और समृद्ध HTML सूचनाओं की कहानी जानने के लिए इस उत्तर के पिछले संपादन देखें।
अब नवीनतम मानक https://notifications.spec.whatwg.org/ पर है ।
जैसे कि एक ही प्रभाव में दो अलग-अलग कॉल क्यों हैं, यह इस बात पर निर्भर करता है कि आप किसी सेवा कार्यकर्ता में हैं या नहीं - इस टिकट को मैंने अपने द्वारा Google में काम करने के दौरान दाखिल किया देखें ।
यह भी देखें notify.js एक सहायक पुस्तकालय के लिए।
डिजाइन और एपीआई विनिर्देश की जांच करें (यह अभी भी एक मसौदा है) या एक साधारण उदाहरण के लिए (पृष्ठ अब उपलब्ध नहीं) से स्रोत की जांच करें: यह मुख्य रूप से एक कॉल है window.webkitNotifications.createNotification
।
यदि आप अधिक मजबूत उदाहरण चाहते हैं (आप अपना स्वयं का Google Chrome एक्सटेंशन बनाने का प्रयास कर रहे हैं, और यह जानना चाहते हैं कि अनुमतियों, स्थानीय संग्रहण और इस तरह से कैसे निपटें), Gmail Notifier Extension देखें : इंस्टॉल करने के बजाय crx फ़ाइल डाउनलोड करें इसे अनज़िप करें और इसका सोर्स कोड पढ़ें।
ऐसा प्रतीत होता है कि window.webkitNotifications
पहले ही हटा दिया गया है और हटा दिया गया है। हालाँकि, एक नया एपीआई है , और यह फ़ायरफ़ॉक्स के नवीनतम संस्करण में भी काम करता है।
function notifyMe() {
// Let's check if the browser supports notifications
if (!("Notification" in window)) {
alert("This browser does not support desktop notification");
}
// Let's check if the user is okay to get some notification
else if (Notification.permission === "granted") {
// If it's okay let's create a notification
var notification = new Notification("Hi there!");
}
// Otherwise, we need to ask the user for permission
// Note, Chrome does not implement the permission static property
// So we have to check for NOT 'denied' instead of 'default'
else if (Notification.permission !== 'denied') {
Notification.requestPermission(function (permission) {
// Whatever the user answers, we make sure we store the information
if(!('permission' in Notification)) {
Notification.permission = permission;
}
// If the user is okay, let's create a notification
if (permission === "granted") {
var notification = new Notification("Hi there!");
}
});
} else {
alert(`Permission is ${Notification.permission}`);
}
}
else
आपको यह बताने के लिए एक अतिरिक्त जोड़ा कि समस्या क्या है। आप शायद विश्व स्तर पर विकलांग सूचनाएं मुझे पसंद: \
मुझे पसंद है: http://www.html5rocks.com/en/tutorials/notifications/quick/#toc-examples लेकिन यह पुराने चर का उपयोग करता है, इसलिए डेमो अब काम नहीं करता है। webkitNotifications
अब है Notification
।
मैंने इसे सरल अधिसूचना आवरण बना दिया। यह क्रोम, सफारी और फायरफॉक्स पर काम करता है।
संभवतः ओपेरा, IE और एज पर भी लेकिन मैंने अभी तक इसका परीक्षण नहीं किया है।
बस यहां से Inform.js फ़ाइल प्राप्त करें https://github.com/gravmatt/js-notify और इसे अपने पृष्ठ में डालें।
इसे बोवर पर लाएं
$ bower install js-notify
यह इस तरह काम करता है:
notify('title', {
body: 'Notification Text',
icon: 'path/to/image.png',
onclick: function(e) {}, // e -> Notification object
onclose: function(e) {},
ondenied: function(e) {}
});
आपको शीर्षक सेट करना है लेकिन दूसरा तर्क वैकल्पिक होने के कारण जसन ऑब्जेक्ट।
यहाँ एपीआई पर अच्छा प्रलेखन है,
https://developer.chrome.com/apps/notifications
और, Google द्वारा आधिकारिक वीडियो स्पष्टीकरण,
Notify.js नए वेबकिट सूचनाओं के आसपास एक आवरण है। यह बहुत अच्छी तरह से काम करता है।
http://alxgbsn.co.uk/2013/02/20/notify-js-a-handy-wrapper-for-the-web-notifications-api/
<!DOCTYPE html>
<html>
<head>
<title>Hello!</title>
<script>
function notify(){
if (Notification.permission !== "granted") {
Notification.requestPermission();
}
else{
var notification = new Notification('hello', {
body: "Hey there!",
});
notification.onclick = function () {
window.open("http://google.com");
};
}
}
</script>
</head>
<body>
<button onclick="notify()">Notify</button>
</body>
Notification.requestPermission();
, तो var notification = new Notification('hello', { body: "Hey there!", });
अधिसूचना दिखाई देती है।