npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@clear.sale/react-native-clear-sale-module

v3.0.0

Published

Clear sale module

Downloads

1,835

Readme

Clear Sale Plugin

Commit

Para dar commit precisa adicionar um prefixo a mensagem:

* build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
* ci: Changes to our CI configuration files and scripts (example scopes: Circle, BrowserStack, SauceLabs)
* docs: Documentation only changes
* feat: A new feature
* fix: A bug fix
* perf: A code change that improves performance
* refactor: A code change that neither fixes a bug nor adds a feature
* test: Adding missing tests or correcting existing tests

Introdução

O objetivo deste manual é fornecer todas as informações necessárias para instalação e uso da ferramenta nos aplicativos desenvolvidos para plataforma React Native.

Este Plugin realiza a coleta de dados (informações e localização) do dispositivo e envio para ClearSale. Todas as informações coletadas são dados relacionados apenas ao dispositivo, sem relação ao aplicativo integrado.

A informação de geolocalização depende da permissão concedida pelo usuario do dispositivo, neste caso é necessário que o aplicativo solicite o acesso da informação de localização do usuário (o Plugin não solicita permissão). Caso o aplicativo não solicite o acesso ou o usuário não conceda permissão não é feita a captura da informação.

O Plugin respeita a política de privacidade da Apple para a captura dos dados do device e o nivel de permissão atribuido pelo usuário (usuário do dispositivo).

Dependências

-   React Native >= 0.63.2

React-Navigation (navegação entre telas)

- react-navigation/native: 5.7.3
- react-navigation/stack": 5.9.0

Instalação

O plugin está disponível em um repositório privado, e para sua utilização seguir o exemplo abaixo :

Adição do plugin ao projeto

  • Npm
npm install git+https://<user:password>@git.acclabs.com.br/gitlab/clearsale/clear2007dev/clear-sale-react-native-library/src#master --save
  • Yarn
yarn add https://<user:password>@git.acclabs.com.br/gitlab/clearsale/clear2007dev/clear-sale-react-native-library/src.git --save

Configuração

Android

Necessário adicionar ao arquivo build.gradle do projeto o repositório do SDK.

maven {
    url 'https://pkgs.dev.azure.com/vstscs/Produtos-Agile/_packaging/BehaviorAnalytics.SDK.Android/maven/v1'
    name 'BehaviorAnalytics.SDK.Android'
    credentials {
        username "vstscs"
        password TOKEN
    }
}

No arquvio build.gradle do app adicione o código para habilitar o multidex.

    android {
        defaultConfig {
            ...
            multiDexEnabled true
        }
        ...
    }

    dependencies {
        implementation 'com.android.support:multidex:1.0.3'
    }

Para saber mais consulte a documentação: https://developer.android.com/studio/build/multidex

IOS

Configuração

  • Adicionar lib nativa iOS Clear Sale no pod do seu projeto
  source	'https://csbehaviorsdk:<TOKEN>@dev.azure.com/vstscs/Produtos-Agile/_git/BehaviorAnalytics.SDK.IOS.Specs'

  target 'NOME_DO_PROJETO' do
    
    pod 'CSBehavior', '3.0.1'

  end
  • Ainda no pod do seu projeto adicionar a seguinte opção no post_install
  post_install do |installer|
    ...
    installer.pods_project.targets.each do |t|
      t.build_configurations.each do |config|
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
      end
    end
  end
  • Dentro da pasta do projeto entrar na pasta ios e executar o comando pod install
pod install
  • Caso apresentar o erro Error: EMFILE: too many open files - React Native CLI instalar o watchman
  • Executar os seguintes comandos no terminal
brew update
$ brew install watchman
  • Adicionar a seguinte opção no seu plist e após No xcode Menu Build -> Clean and Build Folder
 <dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSExceptionDomains</key>
    <dict>
      <key>clearsale.com.br</key>
      <dict>
        <key>NSTemporaryExceptionMinimumTLSVersion</key>
        <string>TLSv1.0</string>
      </dict>
    </dict>
  </dict>

Interface Behavior

Disponibiliza todos os métodos que realizam a comunicação com o SDK, todos métodos retornam uma Promise.

Métodos

| Nome do método | Plataforma | Descrição | |----------------------------------------------------------------------------------------------------------|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Promise<String> generateSessionId(appKey) | Android / iOS | Gera e retorna um identificador de sessão. Este método deve ser utilizado somente se o aplicativo não gerar identificadores únicos para cada coleta. | | Promise<String> collectDeviceInformation(appKey, sessionId) | Android / iOS | Realiza a coleta das informações do dispositivo vinculando ao valor de Sessão. É necessário passar como parâmetro o SessionId, valor de sessão. (*) Caso não possua um valor utilizar o método collectDeviceInformation(). | | Promise<void> start(appKey, success, failure ) | Android | Inicia a coleta das informações sobre o dispositivo e a tela, Exception: CaptureWasStartedException - lançada quando uma captura anterior não foi parada. | | Promise<void> stop(appKey, sessionId, success, failure ) | Android | Encerra o processo de captura dos dados. | | | | |

Exemplo

Exemplo de uso do plugin.

Importando o plugin

import ClearSaleModule from 'react-native-clear-sale-module'

Utilizando os métodos start e stop durante o ciclo de vida do componente (React Hooks):

    useEffect(() => {
        ...
        ClearSaleModule.start(appKey)

        return () => {
            ...
            ClearSaleModule.stop(appKey)
        }
    }, [])

Android

  • Para utilizar as funções generateSessionId e collectDeviceInformation é necessário que o método start tenha sido executado.

  • Caso o método start seja executado sem que o método stop ocorra, será lançada uma exception do tipo CaptureWasStartedException.

Método de coleta de dados

  • Método generateSessionId retorna o sessionId
const loadPage = async () => {
        ...
            
        await verifyLocationPermissions()

        const sessionId = await ClearSaleModule.generateSessionId(state.token)
        setState({
            ...state,
            sessionId: sessionId
        })

        ...
    }
  • Método collectDeviceInformation inicia coleta de dados com um sessionId já existente.
useFocusEffect(
    React.useCallback(() => {
        loadPage()

    return () => {
        unloadPage()
        };
    }, [])
);

const loadPage = async () => {
    ClearSaleModule.collectDeviceInformation(state.token, state.sessionId).then(() => {
        console.log('id com sucesso', state.sessionId)
        setLoading(false)
        setSend(true)
    }).catch(() => {
        setLoading(false)
        setSend(false)
    })
}

Capturando a resposta da Promise.

const getSessionId = () => {
    ClearSaleModule.generateSessionId(appKey).then(sessionId => {
        ...
        setSessionId(sessionId)
    }).catch(err => {
        ...
    })
}

Remoção

  • Npm
 npm uninstall react-native-clear-sale-module
  • Yarn
 yarn remove react-native-clear-sale-module

Licença de Uso.

Ao realizar o download e utilizar nosso SDK você estará concordando com a seguinte licença.

Copyright © 2020 ClearSale

Todos os direitos são reservados, sendo concedida a permissão para usar o software da maneira como está, não sendo permitido qualquer modificação ou cópia para qualquer fim. O Software é licenciado com suas atuais configurações “tal como está” e sem garantia de qualquer espécie, nem expressa e nem implícita, incluindo mas não se limitando, garantias de comercialização, adequação para fins particulares e não violação de direitos patenteados. Em nenhuma hipótese os titulares dos Direitos Autorais podem ser responsabilizados por danos, perdas, causas de ação, quer seja por contrato ou ato ilícito, ou outra ação tortuosa advinda do uso do Software ou outras ações relacionadas com este Software sem prévia autorização escrita do detentor dos direitos autorais.