首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ReactJS中正确使用USParser()来获取计算机的CPU?

如何在ReactJS中正确使用USParser()来获取计算机的CPU?
EN

Stack Overflow用户
提问于 2019-07-24 02:39:05
回答 2查看 1.4K关注 0票数 2

我对JavaScript相当陌生,最近在我的ReactJS项目中安装了来自https://github.com/faisalman/ua-parser-js的UAParser-JS,并且正在尝试弄清楚如何正确地从我的计算机获取CPU架构(例如:"amd64"),以便在我的应用程序的控制台中显示。

"ua-parser-js":"^0.7.20“显示在我的package.json中,所以它似乎已经正确安装。我已经看了他们的github代码库的例子,并尝试了很多代码,到目前为止都没有成功。不幸的是,我似乎在网上找不到任何其他的例子。它们似乎有一个带有{{src="ua-parser.min.js"}}的标记,并且不确定这是否在失败中起到了作用。

这是来自他们网站的代码的顶部,您可以看到CPU-Architecture打印在底部。

代码语言:javascript
复制
<!doctype html>
<html>
<head>
<script type="text/javascript" src="ua-parser.min.js"></script>
<script type="text/javascript">

    var parser = new UAParser();

// by default it takes ua string from current browser's //window.navigator.userAgent

    console.log(parser.getResult());
    /*
        /// this will print an object structured like this:
        {
            ua: "",
            browser: {
                name: "",
                version: ""
            },
            engine: {
                name: "",
                version: ""
            },
            os: {
                name: "",
                version: ""
            },
            device: {
                model: "",
                type: "",
                vendor: ""
            },
            cpu: {
                architecture: ""
            }
        }
    */

    // let's test a custom user-agent string as an example
    var uastring = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.2 (KHTML, like Gecko) Ubuntu/11.10 Chromium/15.0.874.106 Chrome/15.0.874.106 Safari/535.2";
    parser.setUA(uastring);

    var result = parser.getResult();
    // this will also produce the same result (without instantiation):
    // var result = UAParser(uastring);

    console.log(result.browser);        // {name: "Chromium", version: "15.0.874.106"}
    console.log(result.device);         // {model: undefined, type: undefined, vendor: undefined}
    console.log(result.os);             // {name: "Ubuntu", version: "11.10"}
    console.log(result.os.version);     // "11.10"
    console.log(result.engine.name);    // "WebKit"
    console.log(result.cpu.architecture);   // "amd64"

在它最简单的形式中,我得到"UAParser“是未定义的,并且不理解我在做什么与github页面上的示例不同。

代码语言:javascript
复制
  let parser = new UAParser();

  console.log(parser.getResult());

我希望看到我的CPU架构,但是"UAParser“是未定义的。

EN

回答 2

Stack Overflow用户

发布于 2019-07-24 03:34:38

我能够像这样导入解析器:从‘ua UAParser -js’导入{ UAParser };现在代码可以正常工作了。

票数 2
EN

Stack Overflow用户

发布于 2019-07-24 03:00:54

copie刚刚将示例粘贴到了GitHub代码库,这是我得到的

代码语言:javascript
复制
	var parser = new UAParser();

    // by default it takes ua string from current browser's window.navigator.userAgent
    console.log(parser.getResult());
    /*
        /// this will print an object structured like this:
        {
            ua: "",
            browser: {
                name: "",
                version: ""
            },
            engine: {
                name: "",
                version: ""
            },
            os: {
                name: "",
                version: ""
            },
            device: {
                model: "",
                type: "",
                vendor: ""
            },
            cpu: {
                architecture: ""
            }
        }
    */

    // let's test a custom user-agent string as an example
    var uastring = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.2 (KHTML, like Gecko) Ubuntu/11.10 Chromium/15.0.874.106 Chrome/15.0.874.106 Safari/535.2";
    parser.setUA(uastring);

    var result = parser.getResult();
    // this will also produce the same result (without instantiation):
    // var result = UAParser(uastring);

    console.log(result.browser);        // {name: "Chromium", version: "15.0.874.106"}
    console.log(result.device);         // {model: undefined, type: undefined, vendor: undefined}
    console.log(result.os);             // {name: "Ubuntu", version: "11.10"}
    console.log(result.os.version);     // "11.10"
    console.log(result.engine.name);    // "WebKit"
    console.log(result.cpu.architecture);   // "amd64"

    // do some other tests
    var uastring2 = "Mozilla/5.0 (compatible; Konqueror/4.1; OpenBSD) KHTML/4.1.4 (like Gecko)";
    console.log(parser.setUA(uastring2).getBrowser().name); // "Konqueror"
    console.log(parser.getOS());                            // {name: "OpenBSD", version: undefined}
    console.log(parser.getEngine());                        // {name: "KHTML", version: "4.1.4"}

    var uastring3 = 'Mozilla/5.0 (PlayBook; U; RIM Tablet OS 1.0.0; en-US) AppleWebKit/534.11 (KHTML, like Gecko) Version/7.1.0.7 Safari/534.11';
    console.log(parser.setUA(uastring3).getDevice().model); // "PlayBook"
    console.log(parser.getOS())                             // {name: "RIM Tablet OS", version: "1.0.0"}
    console.log(parser.getBrowser().name);                  // "Safari"
代码语言:javascript
复制
<script src="https://cdn.jsdelivr.net/npm/ua-parser-js@0/dist/ua-parser.min.js"></script>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57170333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档