2016-05-09 12 views
8

Tôi đang viết một ứng dụng web trò chuyện mà cần phải có khả năng kích hoạt các thông báo đẩy máy tính để bàn thông qua các thông báo API: https://developer.mozilla.org/en-US/docs/Web/API/Notifications_APIkhông phù hợp/Chậm HTML5 Desktop Đẩy Thông báo trên Chrome

Thật không may, có vẻ như các thông báo không hiển thị lên cho đến khi tôi tuôn hết ra bằng cách thông báo khác với fiddle này: https://jsfiddle.net/yoshi6jp/Umc9A/

Đây là mã mà tôi đang sử dụng:

function triggerDesktopNotification() { 
    function makeNotification() { 
    var notification = new Notification('AppName', { 
     body: 'You have a new message!', 
     icon: '/favicon.ico', 
    }); 
    notification.onclick =() => { 
     notification.close(); 
    }; 
    } 

    if (Notification.permission === 'granted') { 
    makeNotification(); 
    } 
    else if (Notification.permission !== 'denied') { 
    Notification.requestPermission(function (permission) { 
     if (permission === 'granted') { 
     makeNotification(); 
     } 
    }); 
    } 
} 

tôi có thể xác nhận rằng mã thực thi đúng bởi đặt console.log() ngay sau cuộc gọi new Notification. Thật thú vị, nếu tôi đặt một số alert() ở đó, thông báo sẽ hiển thị khi tôi thấy hộp cảnh báo (sau khi điều hướng trở lại tab của tôi).

Trả lời

0

Nếu tôi hiểu bạn đúng;

Ngăn xếp chương trình ngắt cảnh báo nơi nó được đặt tôi nghĩ.Tại sao bạn không cố gắng kích hoạt nó không đồng bộ với hàm setTimeout như thế?

setTimeout( function(){ 
     alert("asd"); 
    }) 

js sửa fiddle here

Các vấn đề liên quan