Amp html AMP analytics:由于getNameArgs方法,传递的useragent被截断
如果我将包含Amp html AMP analytics:由于getNameArgs方法,传递的useragent被截断,amp-html,amp-analytics,Amp Html,Amp Analytics,如果我将包含()的字符串值传递给getNameArgs\uustring方法中中的vars属性 例如: 从请求头传递用户代理,呈现如下内容: "vars": { "userAgentHeader": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36" } 但将以Mozilla/5.0(Mac
()
的字符串值传递给getNameArgs\uu
string方法中中的vars属性
例如:
从请求头传递用户代理,呈现如下内容:
"vars": {
"userAgentHeader": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36"
}
但将以Mozilla/5.0(Macintosh;英特尔Mac OS X 10_10_4)的形式在分析请求中传递
这是因为在原始值中,将传递给其正则表达式(([^(]*)(\([^)]*\)?
)匹配(Mozilla/5.0
作为第一个匹配项,(Macintosh;Intel Mac OS X 10_10_4)
作为第二个匹配项)
数据需要在AMP和主站点上匹配-因此,即使我可以使用Java URLEncoder(UTF-8),它将对括号进行编码,但等效的JS encodeURIComponent()不会对括号进行编码,因此我需要将其转换回。因此正则表达式仍将匹配等效的编码
使用URLEncoder将此作为请求中的查询参数(双重编码…):
Mozilla%252F5.0%2B%2528Macintos%253B%2BMac%2BOS%2BX%2B10\U 10\U 4%2529%2AppleWebKIT%252F537.36%2B%2528KHTML%252C%2Blike%2Gecko%2529%2BChrome%252F53.0.2785.116%2BSafari%252F537.36
与正常GA请求中的情况相比:
Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010\u 10\u 4)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F53.0.2785.116%20Safari%2F537.36
如果直接粘贴到对象中,即使是精确的字符串也会被截断为Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010\u 10\u 4)
也许我做错了什么?这好像是个bug。请在以下位置提交错误报告:这是一个错误,已在此版本中修复,将以版本1477334765771发布