Tag: android

如何使npm脚本build立正确的环境?

我正在构build一个react-native项目,并使用react-native-config库在登台和生产环境之间切换。 我有我的环境定义在单独的.env文件(.env.dev,.env.staging,.env.prod),我有我的package.json中定义的以下npm脚本 "scripts": { "android-dev": "ENVFILE=.env.dev react-native run-android", "android-staging": "ENVFILE=.env.staging react-native run-android", "android-prod": "ENVFILE=.env.prod react-native run-android", "android-release": "react-native run-android –variant=release", "build-android-staging": "export ENVFILE=.env.staging && cd android && ./gradlew assembleRelease && cd ..", "build-android-prod": "export ENVFILE=.env.prod && cd android && ./gradlew assembleRelease && cd .." } 在我的build.gradle中,我放置了以下内容 project.ext.envConfigFiles = [ debug: ".env.staging", release: ".env.prod", anycustombuildlowercase: ".env.staging", […]

firebasefunction来触发通知

我想创build一个firebase函数,当表中有新的条目时会触发一个通知。 我有包含所有设备令牌的单独的表。 无法弄清楚如何从表中获取每个设备令牌。 这里是我迄今为止写的一些firebase函数的代码片段,但没有运气。 'use strict'; const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(functions.config().firebase); exports.sendNotificationToAllMembers = functions.database.ref('/chatRoom/{messageNode}').onWrite(event => { const messageInfo = event.params.messageNode; // Get the list of device notification tokens. const getDeviceTokensPromise = admin.database().ref(`/deviceTokens`).once('value'); // Get newly added Message detail const getMovieMessageDetail = admin.database().ref(`/chatRoom/${messageInfo}`).once('value'); return Promise.all([getDeviceTokensPromise, getMovieMessageDetail]).then(results => { const deviceTokensList = results[0]; […]

无法将npm包安装到nativescript项目(..安装nativescript-nodeify之后)

我遇到了一个让我头痛几个小时的问题。 我正在开发一个本地环境中开发的移动应用程序。 由于我的应用程序需要解码JSON Web令牌的login目的,我试图安装npm jsonwebtoken包,似乎不兼容nativescript。 在google之后,我find了我通过安装的“nativescript-nodeify”插件 tns plugin add nativescript-nodeify 之后,一切似乎工作正常,但后来我试图安装另一个包,这给了我以下错误: npm ERR! code EINVALIDPACKAGENAME npm ERR! Invalid package name "nativescript-nodeify/node_modules/string_decoder": name can only contain URL-friendly characters npm ERR! A complete log of this run can be found in: npm ERR! /home/jonas/.npm/_logs/2017-10-06T16_24_33_241Z-debug.log 这是日志文件的内容: 0 info it worked if it ends with ok 1 verbose cli […]

npm运行android反应本地给予build立错误

运行react-native run-android : JS服务器已经在运行。 在设备上构build和安装应用程序(cd android && ./gradlew installDebug)… 失败:生成失败,出现exception。 什么地方出了错: configuration根项目“推送器”时出现问题。 无法parsingconfiguration':classpath'的所有依赖关系。 无法下载protobuf-java.jar(com.google.protobuf:protobuf-java:2.5.0)无法获取资源https://jcenter.bintray.com/com/google/protobuf/protobuf-java/2.5。 0 / protobuf-java-2.5.0.jar '。 无法GET'https: //jcenter.bintray.com/com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.jar '。 sun.security.validator.ValidatorException:找不到可信的证书 尝试:运行–stacktrace选项来获取堆栈跟踪。 运行–info或–debug选项来获得更多的日志输出。 构build失败 我已经安装了SDK工具,并且已经正确回答了本地文档,但是仍然遇到了麻烦。 我正在使用Ubuntu 16。

我想在S3中存储用户的个人资料图像,并将其显示在客户端 – 将S3对象展示给移动客户端的最佳做法是什么?

所以我有一个Android聊天应用程序,用户可以创build个人资料照片。 这些照片被发送到我的节点JS后端,我上传到我的AWS S3存储桶。 我将关键字存储在我的SQL数据库下的“ user ”表中的“ image_path ”列中。 现在,当用户访问应用中的多个其他用户的聊天室时,他们应该能够看到其他用户的个人资料照片。 目前,在join聊天室时,所有用户及其“ image_path ”列表被返回给客户端。 我正在考虑如何以有效的方式向用户展示个人资料图片,而不会违反最佳安全做法。 我正在考虑的第一个解决scheme如下: 使S3桶读取公共 客户端现在可以通过“ bucket-name.s3.amazonaws.com/image_path ”请求直接访问其他用户的个人资料图片。 我对这个方法的担心是S3显示下面的警告,这让我觉得这种方法有些严重的错误: You have provided public access to this bucket. We highly recommend that you never grant any kind of public access to your S3 bucket. 我正在考虑的第二个解决scheme是: 当在聊天室中检索用户时,遍历每个用户,从每个用户的“ image_path ”创build一个预先签名的URL,在X时间后过期,然后将其返回给客户端 我看到了一些问题。 首先,如果用户在聊天室中停留的时间长于预先签名的url的到期时间,该怎么办? 实现这个刷新逻辑听起来像头痛。 而且,生成所有预先签名的URL似乎会在后端花费很长时间。 推荐哪两种方法? 还有其他的select我应该考虑吗? 更新:所以目前我正在诉诸第一个方法,它工作正常 – […]

使用socket io在服务器上进行file upload

嗨,我是节点js和套接字io的初学者。 请给我build议使用套接字io和android的服务器上传文件的最佳方式是什么。 我想上传文件像what'sapp。 请帮帮我

使NodeJSfunction同步? 在查询数据库之前发送json响应

我正在使用nodejs作为后端语言进行login/注册android应用程序UI。 发生什么事情是,每当我点击注册button,它发送json响应之前查询数据库(select语句来检查是否存在用户名)导致android应用程序得到错误的响应,导致我点击button两次注册正确响应。 例如,让我们说他们是一个名为testing在数据库中的用户名,我尝试使用用户名testing注册,它会告诉我,用户名已被采取,如果擦除testing,并input让说'BOB'不存在数据库它仍然说,用户名已被采取,即使它不是,但当我再次单击注册button它将注册用户。 我假设这是因为它是asynchronous(它发送json响应,而查询数据库之前或之前)。 我怎样才能使这个同步,或有另一种方法来解决这个问题? 服务器文件: var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var mysql = require('mysql'); //connection var con = mysql.createConnection({ host: "localhost", user: "root", password: "password", database : "androidtest" }); //use json app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); //declare variables to hold values entered by the user var name; […]

使用appium节点服务器在模拟器上安装Android APK

我有一个在NODE.JS中创build的appium服务器。 我正在制作appiumtesting来运行模拟器并安装apk。 无法在网上find任何具体的例子,如何使用节点服务器。 大多数情况下,桌面安装的appium服务器就是这样的例子 我需要一些关于如何做到这一点的指导方针。 为了进一步细化,我想使用appium Node服务器来执行以下的事情(不要在应用程序源代码中纠正任何testing用例) 启动模拟器或可能的话,如果可以在真实的设备上进行 在模拟器/设备上安装APK 启动在模拟器/设备上启动应用程序的意图。 意图还包含数据包中的数据 点击应用程序中的button。

套接字Web应用程序 – 处理与移动超时/退出?

假设你有一个socket.io/node.js聊天室。 如果它在一堆电脑上打开,似乎无限期地工作。 但是,假设你已经通过手机或平板电脑连接,然后走开几分钟。 您的移动设备已自动locking,当您重新打开浏览器时,您在PC上看到的新消息不存在,并且您尝试发送的消息无法通过。 是否有任何众所周知的解决scheme或解决方法,使这项工作对移动用户很好? 究竟发生了什么? (通过移动操作系统的超时closures套接字?(HTTP与TCP有什么区别?)) 感谢您的任何见解!

TLS – Node.js服务器到Android应用程序

我将在未来几周内开始一个新项目,但是我有一些与应用程序“devise”有关的问题。 该应用程序将是一个服务器+数据库,谈话的Android应用程序,也有它自己的数据库(离线使用)。 连接将用于交换使用自定义“协议”(游戏networking协议封装在TLS中)encryption的string。 这意味着应用程序将具有两层安全性: TLS – >针对MitM攻击 自定义协议 – >反对“游戏中的黑客”,如游戏包篡改 我的问题如下: Node.js和Android之间可以使用TLS吗? 这个问题有什么好的联系吗? (我读了一些与java和node.js中不同的证书格式的问题,它与OpenSSL和EVP_BytesToKey函数有关) – > 使用Node.jsencryption模块encryption并使用Java解密(在Android应用程序中) – > http://olabini.com/blog/tag/evp_bytestokey/ 有没有混淆Android应用程序的源代码的方式,以便自定义“协议”可以安全地解密客户端? 还是应该把所有的魔法都发生在服务器端? (我不希望解密源代码对用户可见,以剖析自定义协议并开始开发黑客)。 有关提高我的node.js服务器的安全性的一般提示或链接? (我听到一些人在谈论Nginx代理,但是由于我没有提供网页,它仍然是有意义的吗?它不会超载服务器?) 提前感谢你!