<script type="text/javascript">
function notify(title, options, callback) {
// 先检查浏览器是否支持
if (!window.Notification) {
console.log("浏览器不支持notify");
return;
}
console.log("浏览器notify权限:", Notification.permission);
// 检查用户曾经是否同意接受通知
if (Notification.permission === "granted") {
var notification = new Notification(title, options); // 显示通知
if (notification && callback) {
notification.onclick = function(event) {
callback(notification, event);
}
setTimeout(function () {
notification.close();
},3000);
}
} else {
Notification.requestPermission().then( (permission) =>function(){
console.log("请求浏览器notify权限:", permission);
if (permission === "granted") {
notification = new Notification(title, options); // 显示通知
if (notification && callback) {
notification.onclick = function (event) {
callback(notification, event);
}
setTimeout(function () {
notification.close();
}, 3000);
}
} else if (permission === "default") {
console.log("用户关闭授权 可以再次请求授权");
} else {
console.log("用户拒绝授权 不能显示通知");
}
});
}
}
function testClick(){
notify('名称',
{body:'内容',icon:''},
()=>{
notification.close()
}
)}
</script>
浏览器播放声音代码
function playAudio(text) {
window.speechSynthesis.cancel()
// 创建一个新的语音合成对象
let synth = window.speechSynthesis
if (!synth) {
alert('浏览器不支持语音播报!')
}
// 创建一个新的语音合成消息
let utterance = new SpeechSynthesisUtterance()
// 设置要转换为语音的文本内容
utterance.text = text
// 设置语音合成的语言
utterance.lang = 'zh-cn'
// 设置语速和音调
utterance.rate = 1.0 // 数越大,语速就越快
utterance.pitch = 1.0 // 数越大,声音就越尖锐
// 将语音合成消息添加到队列中
synth.speak(utterance)
// 停止
// speechSynthesis.cancel(utterance)
}