小编Par*_*rth的帖子

如何在Web浏览器中检测设备是否具有陀螺仪?

我正在使用THREE.js并创建一个Web应用程序,用户可以旋转设备,场景将相应移动.同样的事情也来.

我在区分具有陀螺仪的设备和不具有陀螺仪的设备方面存在问题.

检测完全没有方向传感器的设备很容易.DeviceOrientationEvent的所有alpha,beta,gamma值均为null.但是,如果移动设备没有陀螺仪,它仍会在DeviceOrientationEvent中提供alpha,beta,gamma值.问题是这些值非常嘈杂,并且在场景中引起很多震动.所以,我想禁用这些设备的设备方向.但是,到目前为止,我还没有找到如何确定数据是来自陀螺仪还是加速度计(这是我对数据来源​​的猜测).

我不知道它是否有帮助,但在这里可以看到如何处理这个问题的一个很好的例子.(按下底部的轴像图标;你必须在没有陀螺仪和陀螺仪的设备上看到它才能看到差异).他们为没有陀螺仪的设备所做的只是更新音高滚动.该偏航当你与手机旋转不会被更新.

所以,这绝对是可能的,但我还没有发现经过大量搜索后的情况.如果有人能帮忙的话会很棒.

非常感谢.

编辑:

在只有加速度计的设备上,如MOTO E,所有值都为null - DeviceOrientationEventrotationRate - 唯一的例外是accelerationIncludingGravity.但是,我之前测试的设备,没有陀螺仪,但仍然为DeviceOrientationEvent提供alpha,beta,gamma值,根据GSM Arena上的"传感器"细节,似乎有2个加速度计.这就是我怀疑它能够提供DeviceOrientationEvent数据的方式,尽管很吵.看起来2个加速度计不足以提供转速;)

javascript 3d mobile accelerometer gyroscope

12
推荐指数
1
解决办法
6038
查看次数

在 Sequelize 中将连接 URI 与读取复制结合使用

如果我有一个连接 URI,我通常可以将其与 Sequelize 一起使用,如下所示:

const sequelize = new Sequelize('postgres://user:pass@example.com:5432/dbname');
Run Code Online (Sandbox Code Playgroud)

但是,如果我想使用读写复制(https://sequelize.org/master/manual/read-replication.html),那么似乎没有使用连接 URI 的选项。我可以传递连接 URI 字符串以在复制选项中进行读写,如下所示:

const sequelize = new Sequelize('postgres://user:pass@example.com:5432/dbname');
Run Code Online (Sandbox Code Playgroud)

编辑:

我已经找到了解决该问题的方法。那就是使用像连接字符串这样的 npm 库来解析连接字符串,如下所示:

const write_uri = new ConnectionString(uri);
const sequelize = new Sequelize(null, null, null, {
  dialect: 'postgres',
  replication: {
    read: [
      'postgres://user:pass@reader.example.com:5432/dbname',
      'postgres://user:pass@anotherreader.example.com:5432/dbname'
    ],
    write: {
      host: write_uri.hosts[0].name,
      username: write_uri.user,
      password: write_uri.password,
      database: write_uri.path[0],
      port: write_uri.hosts[0].port
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

但是,这不是我要找的。

node.js sequelize.js

9
推荐指数
1
解决办法
7417
查看次数

Hammer.js:如何用任意数量的/多个手指检测夹点

当我创建一个新的Hammer Pinch事件,并且没有提到选项中的指针数量时,它只检测最多3个手指,如果我提到指针,例如

var multiPinch = new Hammer.Pinch({event: 'multipinch', pointers: 4, threshold: 0});
Run Code Online (Sandbox Code Playgroud)

,然后它只检测4个手指的捏.我曾尝试在文档和任何地方进行搜索,但是无法通过一个事件检测到有2,3或甚至10个手指的夹点.我需要这个,因为我的网络应用程序必须在81英寸的屏幕上工作.

javascript multi-touch gesture pinchzoom hammer.js

5
推荐指数
1
解决办法
1549
查看次数

DynamoDB:更新时将 ReturnValues 设置为“ALL_NEW”是一个好的做法吗?

我使用 DynamoDB 设置了数据库。我想更新表中的项目并返回新值,因为回调根据新数据进行一些处理。那么,在ReturnValues中请求新数据是否有效?这是一个好的做法还是我可以做更好的事情?

amazon-web-services amazon-dynamodb

2
推荐指数
1
解决办法
1489
查看次数