Trabalhar com intents no Firemonkey
10/07/2020
0
Olá amigos, tudo bom?
Eu estou com uma dúvida em uma app que estou desenvolvendo, talvez vocês possa me ajudar.
Trata-se de uma app de venda de passagens BP-e que rodará em um dispositivo móvel.
Uma maquina de cartão de crédito da Cielo. A Cielo LIO
Ela tem uma impressora acoplada, mas é impossível acessa-la via Bluetooth ou USB ou COM.
No site de suporte ao desenvolvedor da Cielo há a seguinte informação:
1) Para realizar a integração é necessário definir um contrato de resposta com a LIO, no modelo abaixo:
<activity android:name=".ResponseActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="response"
android:scheme="order" />
</intent-filter>
</activity>
2) Para realizar a impressão, basta montar uma URL com o seguinte formato:
lio://print?request=$base64&urlCallback=order://response
Com essas informações eu desenvolvi a minha aplicação enviando intents para LIO com os comandos e os textos a serem impressos.
Estou consegundo imprimir, porém, quando eu imprimo, a aplicação da LIO que roda em segundo plano, responsável por receber os comandos e executar a impressão, abre e não fecha mais e sobrepõe a minha aplicação.
Eu estou usando esta rotina para imprimir:
Base64 := MinhaEncodeBase64(BytesOf(scheme));
Uri := 'lio://print?request='+Base64+'&urlCallback=order://response';
{$IFDEF ANDROID}
Imprime1 := TJIntent.Create;
Imprime1.setType(StringToJString('text/pas'));
Imprime1.setAction(TJIntent.JavaClass.ACTION_VIEW);
Imprime1 := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW,
TJnet_Uri.JavaClass.parse(StringToJString(TIdURI.URLEncode(uri))));
Imprime1.setData(StrToJURI(uri));
SharedActivity.startActivity(Imprime1);
{$ENDIF}
Por acaso alguém saberia dizer o que está errado?
Ficaria muito grato se alguém pudesse me dar uma ajuda.
De qualquer forma,
Desde já agradeço.
Marcio Dias Ramos.
Eu estou com uma dúvida em uma app que estou desenvolvendo, talvez vocês possa me ajudar.
Trata-se de uma app de venda de passagens BP-e que rodará em um dispositivo móvel.
Uma maquina de cartão de crédito da Cielo. A Cielo LIO
Ela tem uma impressora acoplada, mas é impossível acessa-la via Bluetooth ou USB ou COM.
No site de suporte ao desenvolvedor da Cielo há a seguinte informação:
1) Para realizar a integração é necessário definir um contrato de resposta com a LIO, no modelo abaixo:
<activity android:name=".ResponseActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="response"
android:scheme="order" />
</intent-filter>
</activity>
2) Para realizar a impressão, basta montar uma URL com o seguinte formato:
lio://print?request=$base64&urlCallback=order://response
Com essas informações eu desenvolvi a minha aplicação enviando intents para LIO com os comandos e os textos a serem impressos.
Estou consegundo imprimir, porém, quando eu imprimo, a aplicação da LIO que roda em segundo plano, responsável por receber os comandos e executar a impressão, abre e não fecha mais e sobrepõe a minha aplicação.
Eu estou usando esta rotina para imprimir:
Base64 := MinhaEncodeBase64(BytesOf(scheme));
Uri := 'lio://print?request='+Base64+'&urlCallback=order://response';
{$IFDEF ANDROID}
Imprime1 := TJIntent.Create;
Imprime1.setType(StringToJString('text/pas'));
Imprime1.setAction(TJIntent.JavaClass.ACTION_VIEW);
Imprime1 := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW,
TJnet_Uri.JavaClass.parse(StringToJString(TIdURI.URLEncode(uri))));
Imprime1.setData(StrToJURI(uri));
SharedActivity.startActivity(Imprime1);
{$ENDIF}
Por acaso alguém saberia dizer o que está errado?
Ficaria muito grato se alguém pudesse me dar uma ajuda.
De qualquer forma,
Desde já agradeço.
Marcio Dias Ramos.
Marcio Ramos
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)