【问题标题】:Why AWS Cloudfront not classifying Tablet device as Tablet?为什么 AWS Cloudfront 不将平板电脑设备归类为平板电脑?
【发布时间】:2018-04-27 17:35:07
【问题描述】:

下面是我的 Lambda 代码。

当我点击 lambda 时,我可以获得“桌面”或“移动”。当我发送 Tablet UserAgent 时,它不会将其归类为 Tablet。

exports.handler = (event, context, callback) => {
    var region = process.env.AWS_REGION ? process.env.AWS_REGION : 'us-east-1';
    console.log(region);
    console.log(event);

    var device = {};
    if( event.headers['CloudFront-Is-Mobile-Viewer']  === "true" )
         device.device = 'Mobile';
    else if ( event.headers['CloudFront-Is-Tablet-Viewer']  === "true" )
         device.device = 'Tablet';
     else
         device.device = 'Desktop';

     var response = {
        statusCode: 200,
        body: JSON.stringify(device)
    };

    callback(null, response);
};

我也仔细检查了接收到 lambda 的标头。

'CloudFront-Is-Desktop-Viewer': 'true',
'CloudFront-Is-Mobile-Viewer': 'false',
'CloudFront-Is-SmartTV-Viewer': 'false',
'CloudFront-Is-Tablet-Viewer': 'false',
'CloudFront-Viewer-Country': 'US',

用户代理:

Mozilla/5.0 (iPad; CPU OS 8_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B410 Safari/600.1.4

【问题讨论】:

  • 我无法在这里解释“桌面”,但您的测试需要按以下顺序进行:SmartTV(可选)然后是平板电脑,然后是移动设备,然后是桌面......因为这些分类不是相互排斥的。例如,您可以并且将会使用平板电脑查看 Is-Tablet-Viewer 和 Is-Mobile-Viewer both 设置为 true,因此您无法先测试移动设备并获得正确答案.
  • 非常感谢。那行得通。
  • 我会把它作为答案发布。

标签: amazon-web-services lambda amazon-cloudfront aws-api-gateway


【解决方案1】:

根据 User-Agent 标头的值,CloudFront 在将请求转发到您的源之前将这些标头的值设置为 true 或 false。 如果设备属于多个类别,则可能会有多个值为 true。 例如,对于某些平板电脑设备,CloudFront 可能同时设置 CloudFront-Is-Mobile-Viewer 和 CloudFront-Is-Tablet -查看器为真。 (强调)

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html#header-caching-web-device

因此,如果您将这些向下转换为单个设备分类,如果您按此顺序测试它们,您可能会得到最合理的结果,在第一个匹配时停止:

CloudFront-Is-SmartTV-Viewer
CloudFront-Is-Tablet-Viewer
CloudFront-Is-Mobile-Viewer
CloudFront-Is-Desktop-Viewer

【讨论】:

  • 这根本没有回答问题。问题是为什么“ipad”没有标记 Tablet = true
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-13
  • 2011-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-06
相关资源
最近更新 更多