{"metadata":{"image":[],"title":"","description":""},"api":{"url":"","auth":"required","results":{"codes":[]},"settings":"","params":[]},"next":{"description":"","pages":[]},"title":"Android","type":"basic","slug":"android","excerpt":"","body":"# Dito Android SDK\n\n### Exemplo de implementação\n[Exemplo](https://github.com/ditointernet/sdk_mobile_android/tree/sdk-kotlin/DitoSDK/samplekotlin)\n\n## Dependência\n\nNo build.gradle da diretório raiz do projeto você deve adicionar a URL do repositiro\n\n```\nallprojects {\n  repositories {\n    ...\n    maven { url 'https://jitpack.io' }\n  }\n}\n```\nE depois adiciona a dependência:\n\n```\ndependencies {\n  implementation('com.github.ditointernet:sdk_mobile_android') {\n    version {\n      branch = 'sdk-kotlin'\n    }\n  }\n}\n```\n\n## Configuração\n\n### AndroidManifest\n\nNo AndroidManifest é onde você configura as chaves de acesso da sua aplicação:\n\n```\n<application>\n  ...\n  <meta-data android:name=\"br.com.dito.API_KEY\" android:value=\"<MY_API_KEY>\"/>\n  <meta-data android:name=\"br.com.dito.API_SECRET\" android:value=\"<MY_APY_SCRET>\"/>\n</application>\n```\n\n#### Permissões\n\n```\n  <uses-permission android:name=\"android.permission.INTERNET\" />\n```\n\n## Inicialização\n\nNo metodo onCreate da sua classe que estende de `Application` você deve iniciar o SDK:\n\n```\noverride fun onCreate() {\n  super.onCreate()\n  Dito.init(this, Options(2)\n}\n```\n\n`Options` não é uma configuração obrigatório, e você pode usa-lo para as seguintes configurações:\n\n* **retry** (default = 5) - É numero de tentativas que o SDK vai fazer de envio do evento.\n\n* **iconNotification** - É o Ressource ID do icone para notificação\n\n* **contentIntent** - É a Intent que será aberta quando o usuário clicar na notificação. Caso esse valor essa *null*, vamos tentar recuperar a Activity que está configurada como `<action android:name=\"android.intent.action.MAIN\" />`.\n\n## Envio de eventos\n\n### Indentificar Usuário\n\nPara identificar um usuário é preciso criar um objeto `Identify` passando no construtor um ID.\n\n```\nval identify = Identify(\"85496430259\")\nDito.identify(identify, { callback() })\n```\n\nA classe `Identify` tem os seguintes parâmetros:\n\n* id - Identificador do usuário, obrigatório.\n* name - Nome do usuário.\n* email - E-mail do usuário\n* gender - Orientação sexual do usuário\n* location - Localização do usuário\n* birthday - Data de nascimento do usuário\n* data - É um objeto do tipo `CustomData` que aceita parâmetros customizados.\n\n### Evento\n\n```\nDito.track(Event(\"comprou\", 2.5))\n```\n\nA classe `Event`tem os seguintes parâmetros:\n\n* action - Nome do evento, obrigatório.\n* revenue - Receita do evento.\n* data - É um objeto do tipo `CustomData` que aceita parâmetros customizados.\n\n## Push Notification\n\nA Dito usa o FCM para envio das notificaões, o primeiro passo é você configurar as dependências do FCM:\n\n```\ndependencies {\n  implementation 'com.google.firebase:firebase-core:16.0.4'\n  implementation \"com.google.firebase:firebase-messaging:17.3.4\"\n}\n```\n\nE configurar o seu projeto seguindo da documentação oficial do FCM. [Clique aqui](https://firebase.google.com/docs/cloud-messaging/android/client).\n\n### Recuperar e registrar token\n\n```\nFirebaseInstanceId.getInstance().instanceId.addOnSuccessListener {\n  it?.token?.let {\n    Dito.registerDevice(it)\n  }\n}\n```\n\n### Deletar token\n\n```\nDito.unregisterDevice(token)\n```\n\n### Registrar leitura da notificação\n\nO metódo `notificationRead` recebe como parâmetro o ID da notificação que é enviado pela Dito, no atributo data e também o reference do usuário. Para interceptar as notificações consulte a documentação oficial do FCM. [Clique aqui](https://firebase.google.com/docs/cloud-messaging/android/receive).\n\n```\nDito.notificationRead(notification, reference)\n```\n\n### Notificação simples\n\nA Dito disponibiliza uma forma simples para receber e identificar a leitura das notificações, só adicionar as configurações abaixo no seu `AndroidManifest`:\n\n```\n<application>\n  ...\n  <service android:name=\"br.com.dito.ditosdk.notification.DitoMessagingService\">\n    <intent-filter>\n      <action android:name=\"com.google.firebase.MESSAGING_EVENT\" />\n    </intent-filter>\n  </service>\n\n  <receiver android:name=\"br.com.dito.ditosdk.notification.NotificationOpenedReceiver\"/>\n</application>\n```","updates":[],"order":7,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"_id":"5d7fd6d3415c6b00c9322ab6","project":"5538fb24dc5dd00d00e1da91","version":{"version":"1.0","version_clean":"1.0.0","codename":"","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["5538fb25dc5dd00d00e1da95","5538feec27f8540d0024f00e","5547cbd3d3427d0d00cd6e2d","554a574f0b54d30d007fe0f9","55afbdbef202b12100cd9eeb","5c016f198e69b802d4385e25","5c81470b175ad6002457d9fa","5c81472e74fd5a0063420bae","5c81476b2dd69100430ea5a4"],"_id":"5538fb25dc5dd00d00e1da94","createdAt":"2015-04-23T14:01:09.040Z","project":"5538fb24dc5dd00d00e1da91","__v":9,"releaseDate":"2015-04-23T14:01:09.040Z"},"category":{"sync":{"isSync":false,"url":""},"pages":["5538ff4227f8540d0024f00f","554264348aeff51700a20e44","5547c963d3427d0d00cd6e28","5547c9ea70b82f0d0027c312","5547c9fc70b82f0d0027c314","5547ca09d3427d0d00cd6e2a","555cbc2a15a89b0d00c1af58","5566fa95f579050d00c3d63e"],"title":"SDKs","slug":"sdks","order":1,"from_sync":false,"reference":false,"_id":"5538feec27f8540d0024f00e","createdAt":"2015-04-23T14:17:16.792Z","project":"5538fb24dc5dd00d00e1da91","__v":8,"version":"5538fb25dc5dd00d00e1da94"},"user":"55bbb13fa8400c2d00873f1e","createdAt":"2019-09-16T18:39:15.083Z","__v":0,"parentDoc":null}
# Dito Android SDK ### Exemplo de implementação [Exemplo](https://github.com/ditointernet/sdk_mobile_android/tree/sdk-kotlin/DitoSDK/samplekotlin) ## Dependência No build.gradle da diretório raiz do projeto você deve adicionar a URL do repositiro ``` allprojects { repositories { ... maven { url 'https://jitpack.io' } } } ``` E depois adiciona a dependência: ``` dependencies { implementation('com.github.ditointernet:sdk_mobile_android') { version { branch = 'sdk-kotlin' } } } ``` ## Configuração ### AndroidManifest No AndroidManifest é onde você configura as chaves de acesso da sua aplicação: ``` <application> ... <meta-data android:name="br.com.dito.API_KEY" android:value="<MY_API_KEY>"/> <meta-data android:name="br.com.dito.API_SECRET" android:value="<MY_APY_SCRET>"/> </application> ``` #### Permissões ``` <uses-permission android:name="android.permission.INTERNET" /> ``` ## Inicialização No metodo onCreate da sua classe que estende de `Application` você deve iniciar o SDK: ``` override fun onCreate() { super.onCreate() Dito.init(this, Options(2) } ``` `Options` não é uma configuração obrigatório, e você pode usa-lo para as seguintes configurações: * **retry** (default = 5) - É numero de tentativas que o SDK vai fazer de envio do evento. * **iconNotification** - É o Ressource ID do icone para notificação * **contentIntent** - É a Intent que será aberta quando o usuário clicar na notificação. Caso esse valor essa *null*, vamos tentar recuperar a Activity que está configurada como `<action android:name="android.intent.action.MAIN" />`. ## Envio de eventos ### Indentificar Usuário Para identificar um usuário é preciso criar um objeto `Identify` passando no construtor um ID. ``` val identify = Identify("85496430259") Dito.identify(identify, { callback() }) ``` A classe `Identify` tem os seguintes parâmetros: * id - Identificador do usuário, obrigatório. * name - Nome do usuário. * email - E-mail do usuário * gender - Orientação sexual do usuário * location - Localização do usuário * birthday - Data de nascimento do usuário * data - É um objeto do tipo `CustomData` que aceita parâmetros customizados. ### Evento ``` Dito.track(Event("comprou", 2.5)) ``` A classe `Event`tem os seguintes parâmetros: * action - Nome do evento, obrigatório. * revenue - Receita do evento. * data - É um objeto do tipo `CustomData` que aceita parâmetros customizados. ## Push Notification A Dito usa o FCM para envio das notificaões, o primeiro passo é você configurar as dependências do FCM: ``` dependencies { implementation 'com.google.firebase:firebase-core:16.0.4' implementation "com.google.firebase:firebase-messaging:17.3.4" } ``` E configurar o seu projeto seguindo da documentação oficial do FCM. [Clique aqui](https://firebase.google.com/docs/cloud-messaging/android/client). ### Recuperar e registrar token ``` FirebaseInstanceId.getInstance().instanceId.addOnSuccessListener { it?.token?.let { Dito.registerDevice(it) } } ``` ### Deletar token ``` Dito.unregisterDevice(token) ``` ### Registrar leitura da notificação O metódo `notificationRead` recebe como parâmetro o ID da notificação que é enviado pela Dito, no atributo data e também o reference do usuário. Para interceptar as notificações consulte a documentação oficial do FCM. [Clique aqui](https://firebase.google.com/docs/cloud-messaging/android/receive). ``` Dito.notificationRead(notification, reference) ``` ### Notificação simples A Dito disponibiliza uma forma simples para receber e identificar a leitura das notificações, só adicionar as configurações abaixo no seu `AndroidManifest`: ``` <application> ... <service android:name="br.com.dito.ditosdk.notification.DitoMessagingService"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service> <receiver android:name="br.com.dito.ditosdk.notification.NotificationOpenedReceiver"/> </application> ```