1

()コンポーネントの vars プロパティに文字列値を渡すと、文字列メソッドの正規表現<amp-analytics>により文字列が切り捨てられます。getNameArgs_

例えば:

リクエスト ヘッダーからユーザー エージェントを渡すと、次のようにレンダリングされます。

"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; Intel Mac OS X 10_10_4)

これは、正規表現 ( ) が一致する (最初の一致として、および 2 番目として)encodeVars_生の値が渡されるためです。getNameArgs_([^(]*)(\([^)]*\))?Mozilla/5.0(Macintosh; Intel Mac OS X 10_10_4)

データは AMP とメイン サイトで一致する必要があります。そのため、ブラケットをエンコードする Java URLEncoder (UTF-8) を使用できますが、同等の JS の encodeURIComponent()はブラケットをエンコードしないため、変換する必要があります。戻る 。したがって、正規表現は同等のエンコーディングで引き続き一致します。

URLEncoder を使用すると、これがリクエストのクエリ パラメータとして使用されます (ダブル エンコーディング...):

Mozilla%252F5.0%2B%2528Macintosh%253B%2BIntel%2BMac%2BOS%2BX%2B10_10_4%2529%2BAppleWebKit%252F537.36%2B%2528KHTML%252C%2Blike%2BGecko%2529%2BChrome%252F53.0.2785.116%2BSafari%252F537.36

これと通常の GA リクエストの比較:

Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_10_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_10_4)オブジェクトに直接貼り付けた場合、その正確な文字列でさえ切り捨てられます...

たぶん私は何か完全に間違っているのでしょうか?

4

2 に答える 2

1

これはバグであり、このプル リクエストで修正され、バージョンでリリースされる予定です1481838084444

于 2016-12-16T14:14:03.007 に答える
0

これはバグのようです。https://github.com/ampproject/amphtml/issues/newでバグレポートを提出してください。

于 2016-12-01T11:38:36.227 に答える