2010-08-21 19 views
6

मैं सामग्री स्क्रिप्ट से एक साधारण डेस्कटॉप अधिसूचना कोड दिखाने की कोशिश कर रहा हूं, लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है .. मैंने maifest.json फ़ाइल में अनुमतियां जोड़ दी हैं। क्या उन्हें सामग्री स्क्रिप्ट से दिखाने पर कोई प्रतिबंध है?सामग्री स्क्रिप्ट से डेस्कटॉप नोटिफिकेशन

उत्तर

2

हां, अधिसूचनाएं क्रोम विशिष्ट एपीआई का उपयोग करती हैं, और सामग्री स्क्रिप्ट केवल सामान्य जावास्क्रिप्ट आदि के लिए मान्य है ... background page वह जगह है जहां सभी क्रोम विशिष्ट एपीआई चलने में सक्षम हैं ... सबसे पहले आपको अपनी पृष्ठभूमि पंजीकृत करनी होगी पेज manifest.json फ़ाइल में - इस तरह:

"background_page": "background.html", 

इसके अलावा मैनिफ़ेस्ट फ़ाइल में, अनुमति दें आवश्यक अनुमतियों:

"permissions": [ "notifications" ], 

तब पृष्ठभूमि पृष्ठ में अपनी स्क्रिप्ट इस तरह दिखना चाहिए:

<script> 
setTimeout("setNotification();",1); 
function setNotification(){ 
    var n 
    if (window.webkitNotifications.checkPermission() != 0){ 
    setNotification(); 
    return false; 
    } 
n = window.webkitNotifications.createHTMLNotification('http://www.your-notification-address.com'); 
n.show();} 
</script> 
+0

महान:

// in your contentscript.js chrome.extension.sendRequest({msg: "Sup?"}, function(response) { // optional callback - gets response console.log(response.returnMsg); }); 

और प्राप्त अंत पर आप एक onRequest श्रोता होना चाहिए .. धन्यवाद डेविड :) – sharath

+0

यदि आप परमिट सेट करते हैं आपके एक्सटेंशन मेनिफेस्ट में अधिसूचनाओं के लिए आयनों, आपको अनुमतियों की जांच करने की आवश्यकता नहीं है। http://code.google.com/chrome/extensions/notifications.html – npdoty

+1

वास्तव में यह नहीं बताता कि आप एक डेस्कटॉप स्क्रिप्ट कैसे दिखा सकते हैं जो सामग्री स्क्रिप्ट पर उत्पन्न होता है। –

8

आप सामग्री सामग्री के माध्यम से सीधे सूचनाएं नहीं दिखा सकते हैं। लेकिन, आप उन्हें पृष्ठभूमि पृष्ठ के माध्यम से दिखा सकते हैं।

आप manifest.js कुछ इस तरह दिखना चाहिए:

{ 
"name": "Notify This", 
"version": "0.1", 
"permissions": [ 
    "notifications" 
], 
"background_page": "background.html", 
"content_scripts": [ 
    { 
    "matches": ["http://www.example.com/*"], 
    "js": ["contentscript.js"] 
    } 
] 
} 

तब का उपयोग chrome.extension.sendRequest():

// in your background.html 
    chrome.extension.onRequest.addListener(
    function(request, sender, sendResponse) { 

     // Create a simple text notification: 
    var notify = webkitNotifications.createNotification(
     '48.png', // icon url - can be relative 
     'Hello!', // notification title 
     request.msg // notification body text 
    ); 

    notify.show(); 

    setTimeout(function(){ notify.cancel(); },5000); 
    sendResponse({returnMsg: "All good!"}); // optional response 
    }); 
+0

से नीचे मेरा जवाब देखें धन्यवाद, आखिरकार मैंने इस तरह कुछ काम किया था। वे डेस्कटॉप नोटिफिकेशन को सामग्री स्क्रिप्ट से भी अनुमति दे सकते हैं। लोग इस तरह के बंद एपीआई के लिए ऐप्पल में नाराज हो जाते हैं, लेकिन यह Google की तरह नहीं है जहां वेब अधिक खुला होने का मतलब है ... –

+0

यह वह जवाब है जिसे मैं प्रश्न के शीर्षक के आधार पर प्राप्त करने की उम्मीद कर रहा था। धन्यवाद! –

संबंधित मुद्दे