You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -1279,6 +1279,112 @@ Entre os principais códigos de erro identificados na integração via deep link
1279
1279
| 3 | Erro no pagamento |
1280
1280
| 4 | Erro de autenticação |
1281
1281
1282
+
## Serviço em primeiro plano com Deep Link
1283
+
1284
+
<asidestyle="background-color: #d4edda; padding: 15px; border-left: 5pxsolid#28a745; color: #155724;margin-top: 20px; margin-bottom: 20px;"> Um serviço em primeiro plano é um tipo de serviço Android que continua executando tarefas mesmo quando o aplicativo não está visível na tela. A principal diferença entre um serviço comum e um serviço em primeiro plano é que o segundo exibe uma notificação persistente, informando ao usuário que está ativo. </aside>
1285
+
1286
+
Para executar tarefas críticas em segundo plano utilizando um serviço em primeiro plano e, em seguida, iniciar uma comunicação via deep link com outro aplicativo, siga estes passos:
1287
+
1288
+
1289
+
**1. Crie um serviço em primeiro plano**: Implemente um serviço que seja executado em primeiro plano com uma notificação persistente.
1290
+
1291
+
**Exemplo de implementação do serviço em primeiro plano**
1292
+
1293
+
```json
1294
+
import android.app.Notification
1295
+
import android.app.NotificationChannel
1296
+
import android.app.NotificationManager
1297
+
import android.app.Service
1298
+
import android.content.Intent
1299
+
import android.os.Build
1300
+
import android.os.IBinder
1301
+
import androidx.core.app.NotificationCompat
1302
+
1303
+
class MyForegroundService : Service() {
1304
+
companion object {
1305
+
const val CHANNEL_ID = "ForegroundServiceChannel"
1306
+
}
1307
+
1308
+
override fun onCreate() {
1309
+
super.onCreate()
1310
+
createNotificationChannel()
1311
+
val notification: Notification = NotificationCompat.Builder(this, CHANNEL_ID)
1312
+
.setContentTitle("Foreground Service")
1313
+
.setContentText("Performing critical tasks in the background")
1314
+
.setSmallIcon(android.R.drawable.ic_dialog_info)
1315
+
.build()
1316
+
startForeground(1, notification)
1317
+
}
1318
+
1319
+
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
1320
+
// Perform critical background tasks here
1321
+
return START_NOT_STICKY
1322
+
}
1323
+
1324
+
override fun onDestroy() {
1325
+
super.onDestroy()
1326
+
stopForeground(true)
1327
+
}
1328
+
1329
+
override fun onBind(intent: Intent?): IBinder? = null
1330
+
1331
+
private fun createNotificationChannel() {
1332
+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
1333
+
val serviceChannel = NotificationChannel(
1334
+
CHANNEL_ID,
1335
+
"Foreground Service Channel",
1336
+
NotificationManager.IMPORTANCE_DEFAULT
1337
+
)
1338
+
val manager = getSystemService(NotificationManager::class.java)
Em plataformas diferentes da Cielo Smart, ao realizar a impressão de imagens, pode ocorrer de parte da imagem permanecer dentro da impressora após o término da impressão. Para evitar esse comportamento, é possível utilizar o atributo `form_feed` dentro da propriedade `styles`. Se esse parâmetro não for especificado, o valor padrão será 0, o que significa que não haverá espaço adicional após a imagem. Para garantir que a imagem seja completamente ejetada da impressora, basta definir o valor como 1. [Consulte exemplos na seção Mapa de estilos de impressão](https://developercielo.github.io/manual/cielo-lio#mapa-de-estilos-de-impress%C3%A3o).
2537
2643
2538
2644
2539
-
### Serviço em primeiro plano com Deep Link
2540
-
2541
-
<asidestyle="background-color: #d4edda; padding: 15px; border-left: 5pxsolid#28a745; color: #155724;margin-top: 20px; margin-bottom: 20px;"> Um serviço em primeiro plano é um tipo de serviço Android que continua executando tarefas mesmo quando o aplicativo não está visível na tela. A principal diferença entre um serviço comum e um serviço em primeiro plano é que o segundo exibe uma notificação persistente, informando ao usuário que está ativo. </aside>
2542
-
2543
-
Para executar tarefas críticas em segundo plano utilizando um serviço em primeiro plano e, em seguida, iniciar uma comunicação via deep link com outro aplicativo, siga estes passos:
2544
-
2545
-
2546
-
**1. Crie um serviço em primeiro plano**: Implemente um serviço que seja executado em primeiro plano com uma notificação persistente.
2547
-
2548
-
**Exemplo de implementação do serviço em primeiro plano**
2549
-
2550
-
```json
2551
-
import android.app.Notification
2552
-
import android.app.NotificationChannel
2553
-
import android.app.NotificationManager
2554
-
import android.app.Service
2555
-
import android.content.Intent
2556
-
import android.os.Build
2557
-
import android.os.IBinder
2558
-
import androidx.core.app.NotificationCompat
2559
-
2560
-
class MyForegroundService : Service() {
2561
-
companion object {
2562
-
const val CHANNEL_ID = "ForegroundServiceChannel"
2563
-
}
2564
-
2565
-
override fun onCreate() {
2566
-
super.onCreate()
2567
-
createNotificationChannel()
2568
-
val notification: Notification = NotificationCompat.Builder(this, CHANNEL_ID)
2569
-
.setContentTitle("Foreground Service")
2570
-
.setContentText("Performing critical tasks in the background")
2571
-
.setSmallIcon(android.R.drawable.ic_dialog_info)
2572
-
.build()
2573
-
startForeground(1, notification)
2574
-
}
2575
-
2576
-
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
2577
-
// Perform critical background tasks here
2578
-
return START_NOT_STICKY
2579
-
}
2580
-
2581
-
override fun onDestroy() {
2582
-
super.onDestroy()
2583
-
stopForeground(true)
2584
-
}
2585
-
2586
-
override fun onBind(intent: Intent?): IBinder? = null
2587
-
2588
-
private fun createNotificationChannel() {
2589
-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
2590
-
val serviceChannel = NotificationChannel(
2591
-
CHANNEL_ID,
2592
-
"Foreground Service Channel",
2593
-
NotificationManager.IMPORTANCE_DEFAULT
2594
-
)
2595
-
val manager = getSystemService(NotificationManager::class.java)
**2. Inicie o serviço em primeiro plano**: Inicie o serviço antes de lançar o deep link.
2603
-
2604
-
**3. Lance o deep link**: Use um Intent para iniciar o outro aplicativo através do seu deep link.
2605
-
2606
-
#### Exemplo de como iniciar o serviço em primeiro plano e lançar o deep Link
2607
-
2608
-
```json
2609
-
import android.content.Context
2610
-
import android.content.Intent
2611
-
import android.net.Uri
2612
-
2613
-
fun startForegroundServiceAndLaunchDeepLink(context: Context, deepLink: String) {
2614
-
// Start the foreground service
2615
-
val serviceIntent = Intent(context, MyForegroundService::class.java)
2616
-
context.startService(serviceIntent)
2617
-
2618
-
// Launch the other app using its deep link
2619
-
try {
2620
-
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(deepLink))
2621
-
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
2622
-
context.startActivity(intent)
2623
-
} catch (e: Exception) {
2624
-
e.printStackTrace()
2625
-
// Handle the case where the deep link or app is not available
2626
-
}
2627
-
}
2628
-
2629
-
```
2630
-
2631
-
**Observações**
2632
-
2633
-
- Substitua `Foreground Service` e `Performing critical tasks in the background` por textos apropriados para o seu aplicativo.
2634
-
2635
-
- Certifique-se de que o serviço em primeiro plano seja encerrado quando não for mais necessário para evitar o uso desnecessário de recursos.
2636
-
2637
-
Adicione o serviço ao seu AndroidManifest.xml:
2638
-
2639
-
```json
2640
-
<service
2641
-
android:name=".MyForegroundService"
2642
-
android:exported="false"
2643
-
android:foregroundServiceType="dataSync" />
2644
-
```
2645
-
2646
2645
# INTEGRAÇÃO REMOTA
2647
2646
2648
2647
A integração remota da Cielo Smart tem como objetivo permitir que o lojista continue utilizando sua própria solução de frente de caixa (como sistemas de Automação Comercial ou PDV) e a conecte ao módulo de pedidos e pagamentos da Cielo Smart por meio de uma API desenvolvida com o padrão RESTful.
@@ -3994,10 +3993,6 @@ Com uma Cielo Smart em mãos, siga o passo-a-passo abaixo para cancelar a assina
3994
3993
| Versão inferior à última cadastrada | Ocorre quando o *versionCode* submetido é inferior ao de uma versão já cadastrada. Por exemplo, já existe uma versão com código 3 e o desenvolvedor tenta subir uma versão com código 2. | Para solucionar esse erro, utilize um *versionCode* sequencialmente superior ao último aprovado. |
3995
3994
| Certificado alterado | A submissão do aplicativo é rejeitada quando há mudança na assinatura digital (*certificado*) em relação à versão anteriormente cadastrada. | Verifique se o certificado atual é o mesmo utilizado nas versões anteriores. Se houver alteração no *targetSdkVersion*, siga as orientações específicas para garantir compatibilidade com o novo SDK. |
3996
3995
3997
-
-**Package name alterado**: Ocorre quando o desenvolvedor tenta subir uma nova versão do aplicativo, mas o package name foi modificado em relação ao previamente cadastrado. Para solucionar esse erro, mantenha o package name consistente com o da versão original já registrada na plataforma.
3998
-
-**Versão existente**: A tentativa de submissão falha quando o versionCode informado já foi utilizado anteriormente. Para solucionar esse erro, atualize o versionCode para um valor superior ao último registrado. A validação é feita exclusivamente com base no versionCode, independentemente do versionName.
3999
-
-**Versão inferior à última cadastrada**: Ocorre quando o versionCode submetido é inferior ao de uma versão já cadastrada. Por exemplo, já existe uma versão com código 3 e o desenvolvedor tenta subir uma versão com código 2. Para solucionar esse erro, utilize um versionCode sequencialmente superior ao último aprovado.
4000
-
-**Certificado alterado**: A submissão do aplicativo é rejeitada quando há mudança na assinatura digital (certificado) em relação à versão anteriormente cadastrada. Para solucionar esse erro, verifique se o certificado atual é o mesmo utilizado nas versões anteriores. Se houver alteração no targetSdkVersion, é necessário seguir as orientações específicas para garantir que a assinatura seja compatível com a nova versão do SDK. Isso ocorre porque versões mais recentes do Android exigem certificados que atendam aos novos padrões de segurança, como o APK Signature Scheme v3 ou v4.
0 commit comments