Javascript 尝试从android上的web应用推送通知
我有一个web应用程序,它每x秒发送一次通知(这将在将来更改)。从电脑上看,它工作得很好,但当我从Android设备访问显示的页面时,它们不会出现。我拥有所有必要的活动权限Javascript 尝试从android上的web应用推送通知,javascript,android,reactjs,push-notification,notifications,Javascript,Android,Reactjs,Push Notification,Notifications,我有一个web应用程序,它每x秒发送一次通知(这将在将来更改)。从电脑上看,它工作得很好,但当我从Android设备访问显示的页面时,它们不会出现。我拥有所有必要的活动权限 import Push from 'push.js'; function spawnNotification() { // Comprobamos si el navegador soporta las notificaciones if (!("Notification" in window)) {
import Push from 'push.js';
function spawnNotification() {
// Comprobamos si el navegador soporta las notificaciones
if (!("Notification" in window)) {
alert("Este navegador no soporta las notificaciones del sistema");
}
// Comprobamos si ya nos habían dado permiso
else if (Notification.permission === "granted") {
notificacion();
}
// Si no, tendremos que pedir permiso al usuario
else if (Notification.permission !== 'denied') {
Notification.requestPermission(function (permission) {
// Si el usuario acepta, lanzamos la notificación
if (permission === "granted") {
notificacion();
}
});
}
}
function notificacion(){
Push.create("Posible amgio a tu alrededor",{
body: "Añadir amigo",
icon: "../img/logoNotificacion.png",
onClick : function(){
//TODO Añadir funcionalidad añadir amigo
this.close();
}
}).catch(err=>console.log(err));
}
并将组件导入App.js
import './App.css';
import '../node_modules/bootstrap/dist/css/bootstrap.min.css';
import CssBaseline from '@material-ui/core/CssBaseline';
import React, { useEffect } from 'react';
import Contaniner from './components/utils/Contenedor';
import { useWebId } from '@solid/react';
import { saveUser } from './api/api';
import push from './components/utils/Notificacion';
function App() {
const webId = useWebId();
function saveLocateUser() {
if (webId) {
// pedimos la pocalización actual
navigator.geolocation.getCurrentPosition((pos) => {
//prueba push
push();
//salvamos al usuario
saveUser(webId, pos.coords.latitude, pos.coords.longitude).catch(err => console.log(err));
});
}
};
useEffect(() => {
// Guardamos la localización cada 20 segundos
setInterval(saveLocateUser, 20000);
});
return (
<div className="App">
<React.Fragment>
<CssBaseline />
<Contaniner />
</React.Fragment>
</div>
);
}
export default App;
import'/App.css';
导入“../node_modules/bootstrap/dist/css/bootstrap.min.css”;
从“@material ui/core/CssBaseline”导入CssBaseline;
从“React”导入React,{useffect};
从“./components/utils/contendor”导入Contaniner;
从'@solid/react'导入{useWebId};
从“./api/api”导入{saveUser};
从“/components/utils/notification”导入推送;
函数App(){
const webId=useWebId();
函数saveLocateUser(){
如果(webId){
//佩迪莫斯·拉波卡利西翁酒店
navigator.geolocation.getCurrentPosition((pos)=>{
//普鲁巴推
推();
//乌萨里奥萨尔瓦多酒店
saveUser(webId,pos.coords.latitude,pos.coords.longitude).catch(err=>console.log(err));
});
}
};
useffect(()=>{
//瓜达莫斯·卡达·卡达·塞贡多斯酒店
设置间隔(saveLocateUser,20000);
});
返回(
);
}
导出默认应用程序;
是否有人知道一种可能的解决方案或另一种在两种平台上都有效的发送通知的方法