Skip to content

Commit b5cdaed

Browse files
Update FAQ e Serviço em primeiro plano
1 parent 0ba4fb4 commit b5cdaed

1 file changed

Lines changed: 106 additions & 111 deletions

File tree

_i18n/pt/_posts/cielo-lio/2017-01-01-cielo-lio.md

Lines changed: 106 additions & 111 deletions
Original file line numberDiff line numberDiff line change
@@ -1279,6 +1279,112 @@ Entre os principais códigos de erro identificados na integração via deep link
12791279
| 3 | Erro no pagamento |
12801280
| 4 | Erro de autenticação |
12811281

1282+
## Serviço em primeiro plano com Deep Link
1283+
1284+
<aside style="background-color: #d4edda; padding: 15px; border-left: 5px solid #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)
1339+
manager?.createNotificationChannel(serviceChannel)
1340+
}
1341+
}
1342+
}
1343+
1344+
```
1345+
**2. Inicie o serviço em primeiro plano**: Inicie o serviço antes de lançar o deep link.
1346+
1347+
**3. Lance o deep link**: Use um Intent para iniciar o outro aplicativo através do seu deep link.
1348+
1349+
#### Exemplo de como iniciar o serviço em primeiro plano e lançar o deep Link
1350+
1351+
```json
1352+
import android.content.Context
1353+
import android.content.Intent
1354+
import android.net.Uri
1355+
1356+
fun startForegroundServiceAndLaunchDeepLink(context: Context, deepLink: String) {
1357+
// Start the foreground service
1358+
val serviceIntent = Intent(context, MyForegroundService::class.java)
1359+
context.startService(serviceIntent)
1360+
1361+
// Launch the other app using its deep link
1362+
try {
1363+
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(deepLink))
1364+
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
1365+
context.startActivity(intent)
1366+
} catch (e: Exception) {
1367+
e.printStackTrace()
1368+
// Handle the case where the deep link or app is not available
1369+
}
1370+
}
1371+
1372+
```
1373+
1374+
**Observações**
1375+
1376+
- Substitua `Foreground Service` e `Performing critical tasks in the background` por textos apropriados para o seu aplicativo.
1377+
1378+
- 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.
1379+
1380+
Adicione o serviço ao seu AndroidManifest.xml:
1381+
1382+
```json
1383+
<service
1384+
android:name=".MyForegroundService"
1385+
android:exported="false"
1386+
android:foregroundServiceType="dataSync" />
1387+
```
12821388

12831389
## Funcionalidades
12841390

@@ -2536,113 +2642,6 @@ withoutFormFeed.put("form_feed", 0);
25362642
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).
25372643

25382644

2539-
### Serviço em primeiro plano com Deep Link
2540-
2541-
<aside style="background-color: #d4edda; padding: 15px; border-left: 5px solid #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)
2596-
manager?.createNotificationChannel(serviceChannel)
2597-
}
2598-
}
2599-
}
2600-
2601-
```
2602-
**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-
26462645
# INTEGRAÇÃO REMOTA
26472646

26482647
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
39943993
| 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. |
39953994
| 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. |
39963995

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.
40013996

40023997
## Integrações
40033998

0 commit comments

Comments
 (0)