Notificação sonora ao receber uma mensagem no Chat box

2 participantes

Ir para baixo

Tópico resolvido Notificação sonora ao receber uma mensagem no Chat box

Mensagem por legit-nyck 12.02.22 2:11

Detalhes da questão


Endereço do fórum: https://seudiario.forumeiros.com/
Versão do fórum: phpBB3

Descrição


Ola a todos meu forum é novo e tem poucos usuarios no momento mas nao sera sempre assim portanto quero poder melhorar o mesmo o quanto antes pra que isso seja possivel necessito da ajuda de voces poderiam por gentileza me fornecer um codigo atualizado para que eu esteja inserindo no forum e com isso eu e os participantes logados ao chatbox possamos escutar um som de notificacao quando ouver novas mensagens mesmo que nao estejamos olhando pro chat? Ex: um exemplo simples quando recebemos uma notificacao do whatsapp além do som tambem temos a notificacao no celular, Obs: tentei usar os codigos que encontrei aqui no forum topicos de 2017 e esses codigos nao funcionou
legit-nyck
legit-nyck
****

Membro desde : 26/12/2013
Mensagens : 387
Pontos : 687

http://legitserverforum.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Notificação sonora ao receber uma mensagem no Chat box

Mensagem por tikky 12.02.22 11:45

Olá @legit-nyck,

Use o seguinte código JavaScript com investimento no chatbox:
Código:
window.localStorage && $(window).load(function() {
    var sounds = {
      'future': 'https://illiweb.com/fa/fdf/future.mp3',
      'hal': 'https://illiweb.com/fa/fdf/hal.mp3',
      'secret': 'https://illiweb.com/fa/fdf/secret.mp3',
      };
    var default_sound = sounds['future'];
    var default_freq = 'new';
    var default_when = 'once';
    var default_volume = 100;
 
 
    if(localStorage.cb_sound && !localStorage.cb_sound.indexOf('https://dl.dropboxusercontent.com/u/181621985/')) localStorage.removeItem('cb_sound');
    var a = document.createElement('audio');
    if(!a.canPlayType) return;
    a.volume = Math.min(1, Math.max(0, localStorage.cb_volume||(default_volume/100)));
 
    var origin_send = Chatbox.prototype.send;
    Chatbox.prototype.send = function(params) {
      var m = $.trim($("#message").val());
      if(m.indexOf('/sound')&&m.indexOf('/soudn'))
        return origin_send.call(this, params);
      m = $.trim(m.substr(6)).split(/\s+/,3);
      var bad_apple = false;
      switch(m[0].toLowerCase()) {
        case "":
          if(!a.src) {
            a.src = localStorage.cb_sound||default_sound;
            a.load();
        }
          a.play();
          break;
        case "all":
        case "new":
          localStorage.cb_freq = m[0]; break;
        case "always":
        case "off":
        case "on":
        case "once":
        case "never":
          localStorage.cb_when = m[0]; break;
        case "stop":
          if(!a.paused) a.pause();
          if(!a.ended && a.readyState > 0) a.currentTime = 0;
          break;
        case "pause":
          if(!a.paused) a.pause();
          break;
        case "volume":
          if(m.length>1) {
            localStorage.cb_volume = Math.min(1, Math.max(0, parseFloat(m[1].replace(',','.'))/100));
            a.volume = localStorage.cb_volume;
            break
          }
        default:
          bad_apple = true;
      };
      if(bad_apple) {
        if(m[0] in sounds) {
          m[0]= sounds[m[0]];
        }
        if(m[0]=="default") {
          m[0]=default_sound;
          localStorage.removeItem('cb_sound');
          localStorage.removeItem('cb_freq');
          localStorage.removeItem('cb_volume');
          localStorage.removeItem('cb_when');
          a.volume = Math.min(1, Math.max(0, default_volume/100));
        }
        if(/^https?:\/\/.+/.test(m[0])) {
          localStorage.cb_sound = m[0];
          a.pause();
          a.src = m[0];
          a.load();
          a.play();
        } else {
          var message = $('#message').val();
          alert('/sound [all | new]\n/sound [always | off | on | once | never]\n/sound [stop | pause]\n/sound default\n/sound volume 0-100\n/sound ['+$.map(sounds,function(_,k){return k}).join(' | ')+']\n/sound [http://* | https://*]');
          setTimeout(function(){ $("#message").val(message).select().focus(); }, 100);
          return;
        }
      }
      return $("#message").val('').focus();
    };
 
    $(window).on("focus", function(){ localStorage.removeItem('cb_once'); localStorage.removeItem('cb_blurred') }).on("blur", function(){ localStorage.cb_blurred=1; });
 
    var play_sound = function(){
      if(a.paused || a.ended) {
        if(a.readyState > 0) a.currentTime=0;
        if(!a.src) {
          a.src = localStorage.cb_sound||default_sound;
          a.load()
        }
        a.play()
      }
    };
    var overrided = Chatbox.prototype.refresh;
    Chatbox.prototype.refresh = function(data) {
      if (data.messages && data.messages.length) {
        var lm = data.messages.slice(-1)[0];
        var last_message = lm.time+','+lm.action+','+lm.msg;
        if(this.last_message_sound != last_message) {
          var user = $.grep(data.users, function(v){return v.id==chatbox.userId});
          user = user.length ? user[0] : [{}];
          if(this.last_message_sound!==undefined) {
            var freq = (localStorage.cb_freq||default_freq);
            var when = (localStorage.cb_when||default_when);
            if(when != "never" && (when != "off" || localStorage.cb_blurred) && (when != "on" || !localStorage.cb_blurred) && (when != "once" || (localStorage.cb_blurred && !localStorage.cb_once))) {
              if(freq =="all" || (lm.userId!=chatbox.userId && user.username!=lm.username)) {
                if(when!="once" || !localStorage.cb_once) {
                  play_sound();
                  localStorage.cb_once = 1;
                }
              }
            }
          }
          this.last_message_sound = lm;
        }
      }
      overrided.call(this, data);
    };
});
Atenciosamente,
pedxz.
tikky
tikky
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7962
Pontos : 9217

Ir para o topo Ir para baixo

Tópico resolvido Re: Notificação sonora ao receber uma mensagem no Chat box

Mensagem por legit-nyck 12.02.22 11:57

Bom dia pdxz poderia me dizer se devo deixar essa caixinha marcada ou desmarcada?
https://uploaddeimagens.com.br/imagens/knZKdmg
legit-nyck
legit-nyck
****

Membro desde : 26/12/2013
Mensagens : 387
Pontos : 687

http://legitserverforum.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Notificação sonora ao receber uma mensagem no Chat box

Mensagem por tikky 12.02.22 12:03

legit-nyck escreveu:Bom dia pdxz poderia me dizer se devo deixar essa caixinha marcada ou desmarcada?
https://uploaddeimagens.com.br/imagens/knZKdmg
Para ativar as páginas JavaScript essa opção deve estar marcada como "Sim"!
tikky
tikky
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7962
Pontos : 9217

Ir para o topo Ir para baixo

Tópico resolvido Re: Notificação sonora ao receber uma mensagem no Chat box

Mensagem por legit-nyck 12.02.22 12:07

Entendo contudo nenhum som de notificação apareceu até o momento no chatbox onde possivelmente eu esteja errando?
legit-nyck
legit-nyck
****

Membro desde : 26/12/2013
Mensagens : 387
Pontos : 687

http://legitserverforum.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Notificação sonora ao receber uma mensagem no Chat box

Mensagem por tikky 12.02.22 14:07

legit-nyck escreveu:Entendo contudo nenhum som de notificação apareceu até o momento no chatbox onde possivelmente eu esteja errando?
A cada nova mensagem haverá um som sonoro para alertar aos membros a chegada de uma nova mensagem no chat box. Repare que não há nenhum som para quem envia, só para quem recebe.
tikky
tikky
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7962
Pontos : 9217

Ir para o topo Ir para baixo

Tópico resolvido Re: Notificação sonora ao receber uma mensagem no Chat box

Mensagem por legit-nyck 12.02.22 14:17

Ainda nao temos som algum de notificacao no chatbox por favor olhe a imagem a baixo
https://uploaddeimagens.com.br/imagens/rb39Uy4
Obs: eu coloquei o codigo no seu devido lugar, na caixinha exibir som em todas as paginas eu deixei marcado apenas no ChatBox, a questao do som nao estar saindo poderia ter alguma relação com aversão atual do Forum??


Última edição por legit-nyck em 12.02.22 14:41, editado 1 vez(es) (Motivo da edição : Novas perguntas)
legit-nyck
legit-nyck
****

Membro desde : 26/12/2013
Mensagens : 387
Pontos : 687

http://legitserverforum.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Notificação sonora ao receber uma mensagem no Chat box

Mensagem por tikky 13.02.22 12:11

Questão resolvida. A solução é alterar:
Código:
    var default_freq = 'new';
    var default_when = 'once';
para
Código:
    var default_freq = 'all';
    var default_when = 'always';
O tutorial será atualizado.

Tópico resolvido


Movido para "Questões resolvidas".
tikky
tikky
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7962
Pontos : 9217

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos