Gathering detailed insights and metrics for @clear.sale/react-native-clear-sale-module
Gathering detailed insights and metrics for @clear.sale/react-native-clear-sale-module
Gathering detailed insights and metrics for @clear.sale/react-native-clear-sale-module
Gathering detailed insights and metrics for @clear.sale/react-native-clear-sale-module
npm install @clear.sale/react-native-clear-sale-module
Typescript
Module System
Node Version
NPM Version
Cumulative downloads
Total Downloads
Last Day
0%
NaN
Compared to previous day
Last Week
0%
NaN
Compared to previous week
Last Month
0%
NaN
Compared to previous month
Last Year
0%
NaN
Compared to previous year
2
24
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
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).
- React Native >= 0.63.2
- react-navigation/native: 5.7.3
- react-navigation/stack": 5.9.0
O plugin está disponível em um repositório privado, e para sua utilização seguir o exemplo abaixo :
npm install git+https://<user:password>@git.acclabs.com.br/gitlab/clearsale/clear2007dev/clear-sale-react-native-library/src#master --save
yarn add https://<user:password>@git.acclabs.com.br/gitlab/clearsale/clear2007dev/clear-sale-react-native-library/src.git --save
Necessário adicionar ao arquivo build.gradle
do projeto o repositório do SDK.
1maven { 2 url 'https://pkgs.dev.azure.com/vstscs/Produtos-Agile/_packaging/BehaviorAnalytics.SDK.Android/maven/v1' 3 name 'BehaviorAnalytics.SDK.Android' 4 credentials { 5 username "vstscs" 6 password TOKEN 7 } 8}
No arquvio build.gradle
do app adicione o código para habilitar o multidex.
1 android { 2 defaultConfig { 3 ... 4 multiDexEnabled true 5 } 6 ... 7 } 8 9 dependencies { 10 implementation 'com.android.support:multidex:1.0.3' 11 }
Para saber mais consulte a documentação: https://developer.android.com/studio/build/multidex
Configuração
1 source 'https://csbehaviorsdk:<TOKEN>@dev.azure.com/vstscs/Produtos-Agile/_git/BehaviorAnalytics.SDK.IOS.Specs' 2 3 target 'NOME_DO_PROJETO' do 4 5 pod 'CSBehavior', '3.0.1' 6 7 end
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
ios
e executar o comando pod install
1pod install
Error: EMFILE: too many open files - React Native CLI
instalar o watchman
brew update
$ brew install watchman
xcode
Menu Build -> Clean and Build Folder
1 <dict>
2 <key>NSAllowsArbitraryLoads</key>
3 <true/>
4 <key>NSExceptionDomains</key>
5 <dict>
6 <key>clearsale.com.br</key>
7 <dict>
8 <key>NSTemporaryExceptionMinimumTLSVersion</key>
9 <string>TLSv1.0</string>
10 </dict>
11 </dict>
12 </dict>
Disponibiliza todos os métodos que realizam a comunicação com o SDK, todos métodos retornam uma Promise
.
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 de uso do plugin.
1import ClearSaleModule from 'react-native-clear-sale-module'
1 useEffect(() => { 2 ... 3 ClearSaleModule.start(appKey) 4 5 return () => { 6 ... 7 ClearSaleModule.stop(appKey) 8 } 9 }, [])
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
.
generateSessionId
retorna o sessionId
1const loadPage = async () => { 2 ... 3 4 await verifyLocationPermissions() 5 6 const sessionId = await ClearSaleModule.generateSessionId(state.token) 7 setState({ 8 ...state, 9 sessionId: sessionId 10 }) 11 12 ... 13 }
collectDeviceInformation
inicia coleta de dados com um sessionId
já existente.1useFocusEffect( 2 React.useCallback(() => { 3 loadPage() 4 5 return () => { 6 unloadPage() 7 }; 8 }, []) 9); 10 11const loadPage = async () => { 12 ClearSaleModule.collectDeviceInformation(state.token, state.sessionId).then(() => { 13 console.log('id com sucesso', state.sessionId) 14 setLoading(false) 15 setSend(true) 16 }).catch(() => { 17 setLoading(false) 18 setSend(false) 19 }) 20}
1const getSessionId = () => { 2 ClearSaleModule.generateSessionId(appKey).then(sessionId => { 3 ... 4 setSessionId(sessionId) 5 }).catch(err => { 6 ... 7 }) 8}
1 npm uninstall react-native-clear-sale-module
1 yarn remove react-native-clear-sale-module
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.
No vulnerabilities found.
No security vulnerabilities found.