angular - 在服务器上预渲染有角度的通用应用程序时检测设备类型
问题描述
我正在使用ngx-device-detector库来检测设备类型(移动设备、平板电脑或台式机)。该库在客户端模式下完美运行,但在服务器上预呈现 Angular 通用应用程序时无法检测到设备类型(在服务器上预呈现后,在客户端模式下完美运行)。
- 如果有人给我一个适用于该库的解决方案,我将不胜感激
- 最终,如果这个库没有任何解决方案,请给我另一个解决方案
谢谢。
解决方案
我快速查看了代码,我认为您可以setDeviceInfo
使用可以从请求标头中检索的用户代理字符串进行调用
app.module.ts
import {Request} from 'express';
import {REQUEST} from '@nguniversal/express-engine/tokens';
constructor(@Inject(PLATFORM_ID) private platformId,
@Optional() @Inject(REQUEST) protected request: Request,
private deviceService: DeviceDetectorService)
{
if(!isPlatformBrowser(platformId))
{
this.deviceService.setDeviceInfo(request.headers['user-agent']);
}
}
推荐阅读
- angular - 添加与选择器具有相同值的类
- php - 为什么我的所有路线都显示 404 页面?
- c# - 单击后将 Area2D 旋转 90 度(Godot)
- java - Rabbit MQ 监听器的方面
- python - matplotlib如何为每个数据数组传递一个标签
- google-apps-script - 在谷歌表格中将宽转换为长时跳过空白值
- java - 如何使用 Java IO 将内容大小以 GB 为单位的文件作为字符串读取到内存中?
- javascript - 如何修复此 html 和 javascript 上的订单总错误?
- angular - 具有 useFactory 的提供程序 LOCALE_ID 返回 null
- python - Python 解决 _mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away') when using db models