| <!DOCTYPE html> |
| <html> |
| <head> |
| <style> |
| body { |
| color: white; |
| } |
| .title { |
| font-size: 24px; |
| } |
| .subtitle { |
| font-size: 20px; |
| } |
| </style> |
| </head> |
| <body> |
| <div class="title">User-Agent Client Hints Demo</div> |
| <div id="brands" class="subtitle">Brands</div> |
| <div id="mobile" class="subtitle">Mobile indicator</div> |
| <div id="full" class="subtitle">Full User-Agent Data</div> |
| |
| <script type="text/javascript"> |
| // Enable User-Agent Client Hints API |
| h5vcc.settings.set("NavigatorUAData", 1); |
| |
| if (navigator.userAgentData) { |
| var brands_result = document.createElement("div"); |
| brands_result.innerHTML = JSON.stringify(navigator.userAgentData.brands, null, " "); |
| brands_result.style.fontSize = "16px"; |
| var brands_element = document.getElementById("brands"); |
| brands_element.appendChild(brands_result); |
| |
| var mobile_result = document.createElement("div"); |
| mobile_result.innerHTML = navigator.userAgentData.mobile; |
| mobile_result.style.fontSize = "16px"; |
| var mobile_element = document.getElementById("mobile"); |
| mobile_element.appendChild(mobile_result); |
| |
| navigator.userAgentData.getHighEntropyValues( |
| ["architecture", "bitness", "model", "platformVersion", |
| "uaFullVersion", "cobaltBuildNumber", "cobaltBuildConfiguration", |
| "jsEngineVersion", "rasterizer", "evergreenVersion", |
| "starboardVersion", "originalDesignManufacturer", |
| "deviceType", "chipset", "modelYear", "deviceBrand", |
| "connectionType", "aux"]) |
| .then(ua => { |
| // Cobalt returns a CobaltUADataValuesInterface object instead of a |
| // dictionary as dictionary promises are currently not supported. |
| // Thus we must reconstruct the dictionary from the interface object |
| // returned from getHighEntropyValues(). |
| var full_JSON = new Object(); |
| full_JSON.architecture = ua.architecture; |
| full_JSON.bitness = ua.bitness; |
| full_JSON.model = ua.model; |
| full_JSON.platformVersion = ua.platformVersion; |
| full_JSON.uaFullVersion = ua.uaFullVersion; |
| full_JSON.cobaltBuildNumber = ua.cobaltBuildNumber; |
| full_JSON.cobaltBuildConfiguration = ua.cobaltBuildConfiguration; |
| full_JSON.jsEngineVersion = ua.jsEngineVersion; |
| full_JSON.rasterizer = ua.rasterizer; |
| full_JSON.evergreenVersion = ua.evergreenVersion; |
| full_JSON.starboardVersion = ua.starboardVersion; |
| full_JSON.originalDesignManufacturer = ua.originalDesignManufacturer; |
| full_JSON.deviceType = ua.deviceType; |
| full_JSON.chipset = ua.chipset; |
| full_JSON.modelYear = ua.modelYear; |
| full_JSON.deviceBrand = ua.deviceBrand; |
| full_JSON.connectionType = ua.connectionType; |
| full_JSON.aux = ua.aux; |
| |
| var full_result = document.createElement("div"); |
| full_result.innerHTML = JSON.stringify(full_JSON, null, " "); |
| full_result.style.fontSize = "16px"; |
| var full_element = document.getElementById("full"); |
| full_element.appendChild(full_result); |
| }); |
| } else { |
| console.log("User-Agent Client Hints API not enabled"); |
| } |
| </script> |
| </body> |
| </html> |