Disponível a partir do Bundle Stone 7.4.5
Versão do pacote de apps Stone instalado na maquininha POS.
Requisitar uma impressão
Para requisitar a reimpressão de uma transação é necessário criar e enviar um Intent com os parâmetros abaixo:
val uriBuilder = Uri.Builder()
uriBuilder.authority("reprint")
uriBuilder.scheme("reprinter-app")
uriBuilder.appendQueryParameter("SHOW_FEEDBACK_SCREEN", "true")
uriBuilder.appendQueryParameter("SCHEME_RETURN", "reprintDeeplinkScheme")
uriBuilder.appendQueryParameter("ATK", "00000000000000")
uriBuilder.appendQueryParameter("TYPE_CUSTOMER", "MERCHANT")
val intent = Intent(Intent.ACTION_VIEW)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
intent.data = uriBuilder.build()
startActivity(intent)
Campos utilizados para envio
Todos os campos estão em formato String e são obrigatórios
Campo | Descrição |
---|---|
SHOW_FEEDBACK_SCREEN | Mostrar ou não no final do fluxo a tela de sucesso ou erro |
SCHEME_RETURN | Determina para onde será o retorno do deeplink. Deve ser o mesmo valor configurado no lugar da variável scheme no AndroidManifest |
ATK | Id da transação |
TYPE_CUSTOMER | Tipo da reimpressão: CLIENT (cliente) ou MERCHANT (lojista) |
Retorno da impressão
Para conseguir o retorno do deeplink de reimpressão, pode ser utilizada a função abaixo que captura a informação que foi retornada pela Intent.
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
if (intent != null && intent.data != null) {
Log.d("PrintTest", intent.data.toString())
Toast.makeText(this, intent.data.toString(), Toast.LENGTH_LONG).show()
}
}
Mapear retorno da impressão
Se for preciso mapear os casos de sucesso ou erro, poderá utilizar o intent.data
com as seguintes possibilidades.
Resultado | Descrição |
---|---|
SUCCESS | Caso a impressão tenha sido efetuada com sucesso |
PRINTER_OUT_OF_PAPER | Impressora sem papel ou com a tampa de bobina aberta |
PRINTER_INIT_ERROR | Erro ao inicializar a impressora |
PRINTER_LOW_ENERGY | Máquina com baixa energia |
PRINTER_BUSY | Impressora ocupada, ocorre quando já está imprimindo algo |
PRINTER_UNSUPPORTED_FORMAT | Algum formato enviado não corresponde ao padrão de texto, imagem ou texto customizado |
PRINTER_INVALID_DATA | Limite máximo do buffer foi ultrapassado |
PRINTER_OVERHEATING | Superaquecimento da impressora |
PRINTER_PAPER_JAM | Papel preso na caixa de bobina |
PRINTER_PRINT_ERROR | Erro genérico da impressora |