25

我試圖在我的網站上實現對WebKit本機桌面通知的支持。當我嘗試要求用戶使用通知的權限時,絕對沒有任何反應。例如,下面的HTML不會提示Chrome瀏覽器問我的權限:Webkit通知requestPermission函數不起作用

<html lang="en"> 
<head></head> 

<body> 
    <h1>Testing</h1> 
    <script> 
     window.webkitNotifications.requestPermission(); 
    </script> 
</body> 
</html> 

我知道,有一個與我的版本的Chrome瀏覽器沒有問題,因爲其他網站(如http://www.html5rocks.com/tutorials/notifications/quick/)完全正常工作:我可以同時看到提示和隨後的通知。

+5

即使你得到的彈出權限欄,如果你使用本地文件:/// URL,通知仍然不會顯示。將文件移動到http://位置後,window.webkitNotifications.createNotification.show()將顯示通知。 – 2012-11-11 04:09:39

+0

那麼我們如何在本地進行測試呢? @DanDascalescu – 2016-01-15 02:57:19

回答

51

檢查規範在chromium api docs。你可以把它僅僅作爲一個反饋給用戶手勢/動作 - 點擊鼠標等

requestPermission要求將 用戶代理詢問用戶是否允許 顯示來自腳本的通知。 此方法在處理用戶手勢時只能稱爲 ;在 其他情況下它不會有 的影響。這種方法是異步的。 當用戶對權限請求回覆 時,在回調中提供的功能將被調用 。如果 當前許可級別爲 PERMISSION_DENIED,則用戶代理可能不會響應 requestPermission而採取任何操作。

UPDATE 2014-10-01:在鉻37,the user gesture requirement was removed。現在應該可以請求許可以隨時顯示通知。如果您希望定位舊版Chrome(例如,在公司環境中),則可能需要繼續依靠用戶手勢事件。

2

用於檢查本地文件(file://)權限的通知將彈出,但通知不會在chrome上工作。

這樣的工作,你身邊可以改變

內容設置>通知>允許所有網站顯示通知

最短代碼來顯示通知

var notification = new Notification("YOUR MESSAGE");