Ir ao conteúdo
  • Cadastre-se

felipecchaves

Membro Pleno
  • Posts

    28
  • Cadastrado em

  • Última visita

  1. @arthurbavi não é o que eu pensei. Não manjo nada de React Native, mas fiz uma pesquisa, testei aqui e funcionou. O "App.js" é o entry point da aplicação, então o "createStackNavigator" e o "createAppContainer" precisam ficar nele. Vai ficar assim: // App.js import { createAppContainer } from 'react-navigation'; import { createStackNavigator } from 'react-navigation-stack'; import Login from './Login'; import Home from './Home'; const AppNavigator = createStackNavigator({ Login: { screen: Login, navigationOptions: { header: null } }, Home: { screen: Home, navigationOptions: { headerTitle: 'Home' } } }); export default createAppContainer(AppNavigator); // Login.js import React, { Component } from 'react'; import { View, Text, TextInput, TouchableOpacity, StyleSheet } from 'react-native'; export default class Login extends Component { state = { nome: '' } render() { return ( <View style={styles.container}> <TextInput style={styles.input} onChangeText={text => this.state.nome = text} placeholder="Digite seu email" /> <TouchableOpacity style={styles.botao} onPress={() => { this.props.navigation.navigate('Home', { 'nome': this.state.nome }) }} > <Text style={styles.botaoText}>Entrar</Text> </TouchableOpacity> </View> ) } } // Home.js import React, { Component } from 'react'; import { View, Text, TouchableOpacity, StyleSheet } from 'react-native'; export default class Home extends Component { render() { const { navigation } = this.props; return ( <View style={styles.container}> <Text style={styles.texto}> Nome: {JSON.stringify(navigation.getParam('nome', 'NO-ID'))} </Text> <TouchableOpacity style={styles.botao} onPress={() => { this.props.navigation.navigate('Login') }} > <Text style={styles.botaoText}>Voltar</Text> </TouchableOpacity> </View> ); } }
  2. Mostra todo esse código. Esse "this.props" significa que você recebe uma propriedade "navigation" através das propriedades desse componente que tá renderizando o botão. No caso desse erro que tá aparecendo é porque não tá recebendo essa propriedade.
  3. Acontece que o seu "this.props.navigation.navigate('Home')" é indefinido. Como você tá passando essa propriedade pro componente?
  4. O problema é que qualquer um vai poder alterar os arquivos do seu FTP. Não tem como criar um usuário e senha "somente leitura"? Ou criar uma página que lista todos os arquivos que estão dentro do seu FTP.
  5. @Niê já tentou um overflow: hidden; no CSS do elemento que você quer esconder a barra de rolagem?
  6. @Swalls se você conseguiu inicializar então tá no caminho certo. Eu dei uma olhada na documentação e realmente é bem complexo. Antes você não tinha nada, agora já tem um código que inicializa o SDK. Saiu do 0% e chegou em 3%, agora é continuar e quando chegar em uns 30% já vai ter alguma coisa funcional.
  7. @Brunowwf encontrei um bot escrito em C# e o projeto tá bem ativo. A última atualização foi feita há dois dias. Nesses links você consegue se inteirar sobre o funcionamento do Bot: Repositório RSBot Facebook da comunidade RSBot Discord da comunidade RSBot
  8. @Brunowwf sem uma API do jogo é impossível. A única opção é usar um algorítimo para simular a interação do usuário com o PC, e a AHK parece ser a melhor opção. Talvez com alguma biblioteca em Python que simula essa interação, mas seria algo muito mais avançado. Qual é o jogo? Me fala que eu faço uma pesquisa rápida e vejo se encontro alguma coisa.
  9. Não conheço essa linguagem, mas dei uma olhada na documentação e encontrei uma função para fazer a busca de uma imagem na tela, onde retorna a posição da imagem. Você pode usar essa função e depois simular um click do mouse na posição retornada caso encontre a imagem. Documentação AHK - ImageSearch
  10. O que tá acontecendo é que essa linha tá fora do while, então você vai pegar o número do candidato apenas uma vez. Quando entrar no while o valor da sua variável "candidato" vai ser sempre o mesmo, por isso todos os votos vão para o mesmo candidato. Se você colocar essa linha dentro do while, antes do if, ele vai te perguntar o número do candidato em cada repetição do while.
  11. HIKVISION SDK Quando você baixar o SDK vai ter uma pasta "doc" com a documentação explicando como usar.
  12. Se você for usar apenas na sua rede interna, basta instalar um servidor http no seu computador e configurar no roteador pro seu PC ficar com IP fixo. Os servidores http mais populares são Apache e Nginx. Depois de instalar o servidor no seu PC você precisa configurar as rotas (endpoints) como mostra na documentação do Control iD. Por exemplo, se você configurou o IP fixo do seu PC para 192.168.100.100, então pra monitorar o estado da porta você precisa da rota (endpoint) "http://192.168.100.100/api/notifications/door". Sempre que o estado da sua porta for alterado vai ser enviado um JSON pra essa rota com as informações no novo estado e identificação do equipamento que enviou a requisição. Se você quiser monitorar o estado dos equipamentos fora da sua rede interna, vai precisar de um servidor web. Existem infinitas opções, eu posso sugerir a Vercel que é grátis e já vem com toda a segurança de um back-end profissional. O resto é exatamente igual, basta configurar as rotas pra receber as requisições sempre que o estado for alterado.
  13. Os dois erros acontecem porque você tá enviando uma requisição de uma origem genérica que é "https://script.google.com". A requisição precisa ser enviada através de um servidor próprio usando o protocolo https. Nesse caso você pode usar a Vercel (vercel.com) que é grátis. Não tem como rodar só o script no servidor da Vercel, então você vai precisar de um front-end completo pra rodar seu script. Se precisar de ajuda pra fazer o front do seu sistema me manda uma mensagem que a gente combina.
  14. Não entendi o que você quis dizer com "anti restful". Documentação Control iD - Monitor Nesse link explica como monitorar o estado dos equipamentos. Documentação Control iD - Estado das portas Aqui explica como monitorar o estado das portas. Em resumo, você precisa configurar um servidor que vai receber uma requisição do equipamento sempre que houver uma alteração do estado.
  15. API REST é uma API que pode ser acessada por um endereço na web, pode ser por um domínio (http://enderecodaapi.com/api) ou usando um IP (http://192.168.100.52/api). No caso da Control iD o acesso é feito usando o IP do equipamento. Esse é um exemplo de como pode fazer login no equipamento usando JavaScript: let session = ''; const api = 'http://192.168.0.123/login.fcgi'; fetch(api, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ login: 'admin', password: 'admin' }) }).then((response) => { if (response.status === 200) { return response.json(); } return null; }).then((data) => { if (data) { session = data.session; } }); Exemplo de como enviar requisição para abrir a porta: const api = 'http://192.168.0.123/execute_actions.fcgi?session='; // "session" é fornecido quando realiza o login com sucesso fetch(`${api}${session}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ actions: [{ action: 'door', parameters: 'door=1' }] }) }); Documentação Control iD A documentação deles é muito bem explicada e com exemplos em diversas linguagens. Peguei essas informações lá. Dá um olhada na documentação e qualquer dúvida chama aqui que a gente te ajuda.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!