Pular para o conteúdo principal

Aplicativo móvel

Você pode usar o widget de palenciamento incorporado usando um WebView em seu aplicativo móvel e listar os eventos.

img.png

Configurações

ParâmetroExemploDescriçãoObrigatório
widget_ida64fef80-42ec-4d5b-bd38-c918e0071663O único widget_idYes

Parâmetros opcionais

ParâmetroExemploDescrição
externalId6187344f-d2e9-4ff1-a0ca-7a1ad512682dIdentificador de usuário externo
isSandboxtrueSe for definido como true, o modo sandbox é ativado. false por padrão
platforms['uber', 'rappi', 'runa']Matriz de plataformas que o usuário pode selecionar
countries['mx', 'br', 'ar']Códigos de País Alpha-2 selecionados por usuários, selecionáveis
redirectUrlhttps://domain.com/step-2URL para o qual o usuário deve ser redirecionado
customPrivacyUrlhttps://domain.com/privacyPermite adicionar uma caixa de seleção de política de privacidade personalizada, útil se precisar de consentimento personalizado
whatsAppPhoneNumber+525511223344Número de telefone com código de país para relevantes mensagens do WhatsApp de usuários
hideLogofalseSe definido como true, o logotipo da sua empresa é escondido. false por padrão
hideWhatsAppfalseSe definido como true, o botão WhatsApp flutuante é escondido. false por padrão
hideConsentfalseSe definido como true, a página de consentimento é escondida. false por padrão
langesSubstitui o idioma detectado automaticamente pelo navegador. idiomas disponíveis: es, en e pt. null por padrão

Eventos

A única maneira de se comunicar com o link da Palenca é ouvindo um evento. Todos os eventos têm carga útil com o API Avelope.

A tabela a seguir mostra todos os eventos de link de palenciamento:

EventoDescrição
readyIndica que sua chave e widget da API public estão corretos e que o widget foi inicializado
user_createdO usuário foi criado com sucesso
connection_successO usuário conectado com sucesso à plataforma
connection_errorE ocorreu enquanto tentava conectar um erro à plataforma

Resposta para eventos

A estrutura da resposta é sempre a mesma com a seguinte estrutura:

{
"signal": string,
"response": {
"success": bool,
"data": Data Object,
"error": Error Object
}
}

Examples of events

ready

{
"signal": "ready"
}

user_created

{
"signal": "user_created",
"response": {
"success": true,
"data": {
"user_id": "054d0a9d-38ec-40cb-a31c-09b483242e4a",
"external_id": "4a0e32bd-c3df-4172-a89d-f173d6816926",
"widget_id": "feecb679-a3cc-47ef-8fd4-600799f12a39"
},
"error": null
}
}

connection_success

{
"signal": "connection_success",
"response": {
"success": true,
"data": {
"user_id": "054d0a9d-38ec-40cb-a31c-09b483242e4a",
"country": "mx",
"platform": "imss",
"account_id": "472f02e8-6b24-43a7-b529-3f71d6ecc81c"
},
"error": null
}
}

connection_error


{
"signal": "connection_error",
"response": {
"success": false,
"mistake": {
"code": "invalid_credentials",
"message": "The username/password combination is wrong",
"errors": null
},
"data": null
}
}

Exemplo

Reagir nativo

Para listar os eventos que você pode usar postMessage.

import React from 'react';
import { Alert } from 'react-native';
import { WebView } from 'react-native-webview';

const App = () => {
const handleEvent = (event: any) => {
Alert.alert(event.nativeEvent.data);
}

const widgetId: string = 'YOUR_WIDGET_ID';
const baseUrl: string = 'https://connect.palenca.com';
const uri: string = `${baseUrl}?widget_id=${widgetId}&primary_color=ea4c89`;

return <WebView
onMessage={handleEvent}
source={{ uri }}
/>;
};

export default App;

Android Kotlin

activity_main.xml

     <WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/webView"
android:layout_gravity="center_horizontal"/>

MainActivity.kt

import android.content.Context
import android.os.Bundle
import android.webkit.JavascriptInterface
import android.webkit.WebViewClient
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.palenca.connect.databinding.ActivityMainBinding
import org.json.JSONObject

class MainActivity : AppCompatActivity() {

private lateinit var binding: ActivityMainBinding
private val baseUrl = "https://connect.palenca.com"
private val widgetId = "YOUR_WIDGET"
private val widgetUrl = "$baseUrl?widget_id=$widgetId&primary_color=ea4c89"

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.webView.webViewClient = WebViewClient()
binding.webView.settings.javaScriptEnabled = true
binding.webView.addJavascriptInterface(JSBridge(this), "JSBridge")
binding.webView.loadUrl(widgetUrl)
}

/**
* Receive messages from the Webview and pass into native
*/
class JSBridge(private val context: Context) {
@JavascriptInterface
fun onEvent(event: String) {
val jsonObject = JSONObject(event)
println(jsonObject)
Toast.makeText(context, event, Toast.LENGTH_LONG).show()
}
}
}

AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET"/>