对多说显示UA方案的一些改进

[:zh]目前使多说显示UA的各种方案中,最普及的应该是来自搜索客的方案:多说回复后显示浏览器及操作系统信息(Useragent)。效果如下:

pic-022

这个方案十分优秀,但是使用过程中我发现它并不完美,比如除Windows以外的操作系统只能显示名称而不能显示版本,iOS会显示为Mac OS X等等…

准备工作

首先你需要按照上面链接中的文章所述操作,将embed.js本地托管并修改其中的代码。本文不再赘述。

显示操作系统版本

下面这一段代码负责操作系统的识别。

我们以Android为例。可以看到这里对除Windows以外的操作系统只匹配了系统的名称,而没有匹配后面的版本号。

一台Android设备的UA应该是这样的,我们需要对其中的Android版本号进行匹配和分割:

将上面代码中负责识别Android的那两行改为:

不要在意Android 0.0那两行,那是我调试的时候用的,懒得删了。

这样就可以自动显示Android的版本了,其他的操作系统也同理。

识别iOS

与上一步原理类似,在上一步的代码后面加入:

搞定。虽然这样做也会有些问题,比如会显示出iOS X之类的东西….

然后你需要做的就是把改好的js重新压缩,上传到自己的服务器上,然后将多说插件中wordpress.php 中embed.js的url改为自己服务器上的地址。

当然你也可以直接使用我改好的:

压缩:https://blog.nyan.imres/embed.js

未压缩:https://blog.nyan.imres/embed-ori.js

因为时间及能力有限,修改的部分也并不完美,欢迎大家继续修正。[:]

4 thoughts on “对多说显示UA方案的一些改进

  1. 搜索客
    Baidu Browser 4.5.0.0 Baidu Browser 4.5.0.0 Nexus One Nexus One

    不完美的地方是因为可供参考的信息太少了,苹果家族的UA提交的少,我自己又没有装备,所以测试机会很少,windows类andriod类的信息相对来说准确很多,因为我自己就测试了很多,同时还有很多热心用户提交帮我完善,以后还会继续更新,有什么意见和建议欢迎来告诉我~~

    1. Frank  Mod
      Google Chrome 47.0.2526.83 Google Chrome 47.0.2526.83 Android 5.0.2 Android 5.0.2

      恩,不过还是感谢菊苣写出这么棒的方案。

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注

如果你是人类,请点击Pineapple...