Closed alexandregncoelho closed 8 years ago
@alexandregncoelho sempre que a conexão é perdida é disparado um evento chamado DatecsPrinter.connectionStatus
passando o status da conexão na variável isConnected
do evento.
Portanto vc pode criar um listener em cima desse evento e tratar a alteração de status como quiser. Ex.:
window.broadcaster.addEventListener("DatecsPrinter.connectionStatus", function (e) {
//connection lost
if (!e.isConnected) {
alert('connection lost!');
}
});
Entendi. Mas de quanto em quanto tempo esse status é atualizado? Uma seguinte situacao: Meu aplicativo está conectado a impressora e de repente eu desligo a impressora. Imediatamente, em menos de um segundo apos desligar ela, mando um comando de impressão para a impressora, mas quero checar se a impressora está conectada. Para q isso funcione sem erros, o plugin deve atualizar constantemente o status da impressora. De quanto em quanto tempo esse status é atualizado? Se eu desligar a impressora, após quanto tempo o status da impressora será mudado? Tem um outra forma de sempre que eu for imprimir, saber se a impressora está conectada? Ou se o comando de impressão que enviei para impressora foi executado corretamente imprimindo todos os dados?
O evento é disparado de imediato.
Ou se o comando de impressão que enviei para impressora foi executado corretamente imprimindo todos os dados?
Essa é uma dificuldade que encontrei e até o momento não achei uma maneira de resolver, se tiver alguma ideia fico feliz em discutir
Certo. Mas seria imediato só se a impressora, ao desligar, enviasse uma notificação informando que a conexão seria perdida? Isso acontece? Desde já, muito obrigado pela atenção Giorgio. Em 15/11/2015 2:22 PM, "Giorgio Fellipe" notifications@github.com escreveu:
O evento é disparado de imediato.
Ou se o comando de impressão que enviei para impressora foi executado corretamente imprimindo todos os dados? Essa é uma dificuldade que encontrei e até o momento não achei uma maneira de resolver, se tiver alguma ideia fico feliz em discutir
— Reply to this email directly or view it on GitHub https://github.com/giorgiofellipe/cordova-plugin-datecs-printer/issues/4#issuecomment-156825796 .
Sim, como pode ser visto nesta linha é aberto um canal de comunicação com a impressora, se algo acontecer que interrompa a comunicação o evento é disparado.
Você sabe como eu posso fazer de forma garantida a impressão? Por exemplo, sempre antes de imprimir, quero garantir que a impressora está conectada. Sabe a melhor de fazer isso com o plugin que voce desenvolveu? Quais funções devo usar? Obrigado! Em 15/11/2015 6:03 PM, "Giorgio Fellipe" notifications@github.com escreveu:
Sim, como pode ser visto nesta linha https://github.com/giorgiofellipe/cordova-plugin-datecs-printer/blob/master/src/android/DatecsSDKWrapper.java#L337 é aberto um canal de comunicação com a impressora, se algo acontecer que interrompa a comunicação o evento é disparado.
— Reply to this email directly or view it on GitHub https://github.com/giorgiofellipe/cordova-plugin-datecs-printer/issues/4#issuecomment-156848843 .
Além desse evento vc pode acompanhar o status da impressora através do getStatus
, a documentação da biblioteca da Datecs não dá muita informação quanto aos códigos de status retornados nessa função, na verdade explicam apenas que 4 significa que a impressora está sem papel.
Você sabe como eu posso fazer de forma garantida a impressão? Por exemplo, sempre antes de imprimir, quero garantir que a impressora está conectada. Sabe a melhor de fazer isso com o plugin que você desenvolveu? Quais funções devo usar? Obrigado!
No app que desenvolvi usei somente esses dois métodos mesmo, observando o evento DatecsPrinter.connectionStatus
e verificando o status (getStatus
), nada além disso, e não tive problemas...
Certo. Muito obrigado, Giorgio, pela disponibilidade. Vou fazer os testes aqui! Abraço.
Boa tarde, Giorgio. Ao fazer o build da aplicação usando seu plugin, o seguinte erro está aparecendo:
.../PrinterDatecs/platforms/android/src/com/giorgiofellipe/datecsprinter/DatecsSDKWrapper.java:540: error: cannot find symbol
LocalBroadcastManager.getInstance(mWebView.getContext()).sendBroadcastSync(intent);
symbol: variable LocalBroadcastManager location: class DatecsSDKWrapper
Parece que não está reconhecendo a variável "LocalBroadcastManager"
Desconsidere a mensagem anterior. Foi porque esqueci de baixar o plugin: https://github.com/bsorrentino/cordova-broadcaster.git
Olá, primeiramente, parabéns pela contribuição. Estou trabalhando com impressoras datecs também e queria saber se esse plugin que desenvolveu para o cordova consegue recuperar em tempo real e de forma imediata o status "real" da impressora. Estou usando recentemente um plugin cordova para conexões bluetooth onde utilizo o método isConnected() para checar se a impressora está conectada ao dispositivo. Ele funciona bem, mas se eu desligar a impressora e imeditamente chamar esse método isConnected() ele continua retornando que a impressora está conectada. Somente após aproximadamente 5 segundos que este método começa a retornar que a impressora está desconectada. Ou seja, o plugin que uso tem aproximadamente um delay de 5 segundos para atualizar o status da impressora. Gostaria de saber se o plugin que você desenvolveu também tem este problema. Desde já, muito obrigado!