function GetDeviceType(var OsName, BrowserName: string; var IsMobileDevice: Boolean): string;
var
I: Integer;
BrowserInfo: string;
OSTypes, BrowserTypes: TStringList;
begin
Result := ''; BrowserName := 'Unknown';
OsName := 'Unknown';
IsMobileDevice := False; BrowserInfo := UniApplication.UniSession.RequestHeader['User-Agent'];
OSTypes := TStringList.Create;
BrowserTypes := TStringList.Create;
try
OSTypes.Add('Ipod');
OSTypes.Add('Ipad');
OSTypes.Add('Iphone'); OSTypes.Add('J2ME/MIDP');
OSTypes.Add('Palm');
OSTypes.Add('BlackBerry');
OSTypes.Add('PlayStation'); OSTypes.Add('Symbian');
OSTypes.Add('Windows Mobile');
OSTypes.Add('Windows CE');
OSTypes.Add('Windows Phone');
OSTypes.Add('PPC');
OSTypes.Add('Android'); OSTypes.Add('Mac');
OSTypes.Add('Windows');
OSTypes.Add('Linux'); OSTypes.Add('Unknown'); //微软IE
BrowserTypes.Add('MSIE 5.5');
BrowserTypes.Add('MSIE 6.5');
BrowserTypes.Add('MSIE 7.0');
BrowserTypes.Add('MSIE 8.0');
BrowserTypes.Add('MSIE 9.0');
BrowserTypes.Add('MSIE 10.0');
BrowserTypes.Add('MSIE 11.0');
BrowserTypes.Add('MSIE'); BrowserTypes.Add('Netscape'); //网景
BrowserTypes.Add('Firefox'); //火狐
BrowserTypes.Add('Chrome'); //谷歌
BrowserTypes.Add('Safari');
BrowserTypes.Add('Opera'); for I := 0 to BrowserTypes.Count - 1 do
begin
if Pos(Uppcase(BrowserTypes[I]), Uppcase(BrowserInfo)) <> 0 then
begin
BrowserName := BrowserTypes[I];
Break;
end;
end; for I := 0 to OSTypes.Count - 1 do
begin
if Pos(Uppcase(OSTypes[I]), Uppcase(BrowserInfo)) <> 0 then
begin
OsName := OSTypes[I];
Break;
end;
end; IsMobileDevice := OSTypes.IndexOf(OsName) <= OSTypes.IndexOf('Android');
finally
FreeAndNil(OSTypes);
FreeAndNil(BrowserTypes);
end;
end; //使用方法
GetDeviceType(OsName, BrowserName, IsMobileDevice);
ShowMessage('操作系统类型:' + OsName);
ShowMessage('浏览器内核:' + BrowserName); if IsMobileDevice then
ShowMessage('移动设备')
else
ShowMessage('非移动设备'); //显示IE浏览器使用
if Pos('MSIE',BrowserName) <> 0 Then
begin
ShowMessage('本系统暂不支持微软IE内核浏览器,推荐使用基于谷歌Chrome内核的浏览器!');
Close;
end;

unigui判断浏览器内核、操作系统以及是否移动终端函数的更多相关文章

  1. userAgent,JS这么屌的用户代理,你造吗?——判断浏览器内核、浏览器、浏览器平台、windows操作系统版本、移动设备、游戏系统

    1.识别浏览器呈现引擎 为了不在全局作用域中添加多余变量,这里使用单例模式(什么是单例模式?)来封装检测脚本.检测脚本的基本代码如下所示: var client = function() { var ...

  2. JS判断客户浏览器是否是IE8浏览器、jQuery判断浏览器内核

    今天在使用encharts的时候由于要兼容IE8,所以最终决定在非IE8浏览器使用encharts,在IE8使用amcharts.于是需要使用JS判断使用的浏览器版本: function IEVers ...

  3. JQuery或JS判断浏览器内核版本号以及是否支持W3C盒子模型

    jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support .在更新的 2.0 版本中,将不再支持 IE 6/7/8. ...

  4. js判断浏览器类型(手机和电脑终端)

    工作中经常会用到通过js来判断浏览器的功能!今天这里通过js来判断浏览器是来自移动设备还是pc设备! 代码如下: var browser={ versions:function(){ var u = ...

  5. C# System.Windows.Forms.WebBrowser中判断浏览器内核和版本

    参考 [完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器 利用js来判断 namespac ...

  6. js 判断浏览器内核

    function getOs()  {      var OsObject = "";     if(navigator.userAgent.indexOf("MSIE& ...

  7. js判断浏览器内核如果是ie弹出提示非ie不进行任何操作

    如上做一个弹出框针对ie兼容 // 获取IE版本 function IEVersion() { // 取得浏览器的userAgent字符串 var userAgent = navigator.user ...

  8. js判断浏览器内核和版本(包括手机端设备)

    var X, xue;xue = xue || function(expr, fn) {    return xue.dom ? xue.dom(expr, fn) : {};};X = xue;wi ...

  9. 判断浏览器内核JS代码

    <script type="text/javascript"> var Sys = {}; var ua = navigator.userAgent.toLowerCa ...

随机推荐

  1. C# 枚举,传入int值返回string值

    需求:1:子公司负责人2:人事3:审批人4:签批人 5:管理员  传入值为1,2,3,4,5这个数字的某一个.需要返回他们的中文描述. 一下忘记该怎么写了...后来百度下查出来了..记录下当个小工具吧 ...

  2. Hadoop管理员的十个最佳实践(转)

    前言 接触Hadoop有两年的时间了,期间遇到很多的问题,既有经典的NameNode和JobTracker内存溢出故障,也有HDFS存储小文件问题,既有任务调度问题,也有MapReduce性能问题.遇 ...

  3. MySQL性能优化的最佳20+套经验

      今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情.当我们去设计数据库表结构,对操 ...

  4. iOS中的堆(heap)和栈(stack)的理解

    操作系统iOS 中应用程序使用的计算机内存不是统一分配空间,运行代码使用的空间在三个不同的内存区域,分成三个段:“text segment “,“stack segment ”,“heap segme ...

  5. 10.30Daily Scrum

    出席人员 任务分配完成情况 明天任务分配 王皓南 研究代码,讨论实现方法及实现的动能 研究代码,学习相应语言,讨论设计思路 申开亮 研究代码,讨论实现方法及实现的动能 研究代码,学习相应语言,讨论设计 ...

  6. Ext学习-HelloWorld以及基础环境搭建

    1.目的    在eclipse中搭建EXTJS的基础环境,学习如何按照从官方下载的代码中搭建新的Extjs工程 2.主要包含内容:   1.ExtJS文件下载以及目录说明   2.ExtJS开发环境 ...

  7. Linux命令zip和unzip

    问题描述:        使用Linux中命令zip和unzip 问题解决: 命令名: zip  功能说明:压缩文件. 语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][- ...

  8. 【BZOJ】【2733】【HNOI2012】永无乡

    平衡树+启发式合并+并查集 因为要求一坨数中第k大的……用平衡树会很好维护…… 但又要求连通块?所以用并查集来维护…… 大概就是让并查集的fa和Treap的根是同一个节点吧…… TLE了N多发,可能是 ...

  9. error C2061: syntax error : identifier '__RPC__out_xcount_part'

    朋友遇到的 把dx, windows sdk ,vs2010照着成功人士的配置好 应该就可以了

  10. 【WCF--初入江湖】11 安全

    11 安全 前言 [1]传输安全  传输安全模式  传输安全与绑定协议   [2]身份验证  身份验证分类  证书  示例:传输安全匿名客户端证书的使用 1. 传输安全     保证信息在传输过程中的 ...