wepy/packages/wepy-web/src/helper/device.js

https://github.com/Tencent/wepy/blob/bd0003dca2bfb9581134e1b05d4aa1d80fc53858/packages/wepy-web/src/helper/device.js

  1. /**
  2. * Tencent is pleased to support the open source community by making WePY available.
  3. * Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved.
  4. *
  5. * Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
  6. * http://opensource.org/licenses/MIT
  7. * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
  8. */
  9.  
  10. const MOBILE_DEVICE = ['android', 'iphone', 'symbianos', 'windows phone', 'ipad', 'ipod'];
  11.  
  12. export function system () {
  13. let ua = window.navigator.userAgent.toLowerCase();
  14.  
  15. for (let i = 0; i < MOBILE_DEVICE.length; i++) {
  16. if (ua.indexOf(MOBILE_DEVICE[i]) !== -1) {
  17. switch (MOBILE_DEVICE[i]) {
  18. case 'iphone':
  19. return 'mobile_iPhone';
  20. case 'symbianos':
  21. return 'mobile_SymbianOS';
  22. case 'windows phone':
  23. return 'mobile_WindowsPhone';
  24. case 'iPad':
  25. return 'pad_iPad';
  26. case 'iPod':
  27. return 'pad_iPod';
  28. case 'Android':
  29. if (ua.indexOf('Mobile') !== -1) {
  30. return 'mobile_Android';
  31. } else {
  32. return 'pad_Android';
  33. }
  34.  
  35. }
  36. }
  37. }
  38.  
  39. let sys;
  40.  
  41. if (ua.indexOf('nt 5.1') > -1) {
  42. sys = 'Windows xp';
  43. } else if (ua.indexOf('nt 6.1') > -1) {
  44. sys = 'Windows 7';
  45. } else if (ua.indexOf('nt 6.3') > -1) {
  46. sys = 'Windows 8';
  47. } else if (ua.indexOf('nt 10.0') > -1) {
  48. sys = 'Windows 10';
  49. } else if (ua.indexOf('nt 6.0') > -1) {
  50. sys = 'Windows Vista';
  51. } else if (ua.indexOf('nt 5.2') > -1) {
  52. sys = 'Windows 2003';
  53. } else if (ua.indexOf('nt 5.0') > -1) {
  54. sys = 'Windows 2000';
  55. } else if ((ua.indexOf('windows') !== -1 || ua.indexOf('win32') !== -1)) {
  56. sys = 'Windows';
  57. } else if ((ua.indexOf('macintosh') !== -1 || ua.indexOf('mac os x') !== -1)) {
  58. sys = 'Macintosh';
  59. } else if ((ua.indexOf('adobeair') !== -1)) {
  60. sys = 'Adobeair';
  61. } else {
  62. sys = 'Unknow';
  63. }
  64.  
  65. return sys;
  66. };
  67.  
  68. export function mobile () {
  69. let ua = window.navigator.userAgent.toLowerCase();
  70. return MOBILE_DEVICE.some(v => ua.indexOf(v) !== -1);
  71. };
  72.  
  73. export function browser () {
  74.  
  75. };

wepy/packages/wepy-web/src/helper/device.js的更多相关文章

  1. [转] Creating a Simple RESTful Web App with Node.js, Express, and MongoDB

    You can find/fork the sample project on GitHub Hey! This and all my other tutorials will soon be mov ...

  2. Device.js – 快速检测平台、操作系统和方向信息

    在 Web 项目中,有时候我们需要根据程序运行的环境采取特定操作.Device.js 是一个很小的 JavaScript 库,它简化了编写和平台,操作系统或浏览器相关的条件 CSS 或 JavaScr ...

  3. Device.js——检测设备平台、操作系统的Javascript 库

    http://segmentfault.com/a/1190000000373735 Device.js 是一个可以让你检测设备的平台,操作系统和方向 JavaScript 库,它会自动在 <h ...

  4. 使用device.js检测设备并实现不同设备展示不同网页

    现在很多时候会用@media来控制页面在不同分辨率的设备商展示不同效果,但是有些时候想在直接在PC上展示一个做好的页面,在mobile展示另一个页面.这个时候可以借助device.js来检测设备,然后 ...

  5. 通过Web Api 和 Angular.js 构建单页面的web 程序

    通过Web Api 和 Angular.js 构建单页面的web 程序 在传统的web 应用程序中,浏览器端通过向服务器端发送请求,然后服务器端根据这个请求发送HTML到浏览器,这个响应将会影响整个的 ...

  6. 检测设备平台,操作系统,方向 Javascript 库:Device.js

    Device.js 是一个可以让你检测设备的平台,操作系统和方向 JavaScript 库,它会自动在 <html> 标签添加一些设备平台,操作系统,方向相关的 CSS class,这样就 ...

  7. WEB前段(HTML+JS),后端(MYSQL+PHP)开发基础

    一.HTML HTML:超文本标记语言,可以加载JS/CSS/图片/链接等非文字的内容 一切的网页开发技术都需要建立在HTML的基础之上 HTML的结构和语法 HTML元素 注释:  <!-- ...

  8. App.js – 用于移动 Web App 开发的 JS 界面库

    App.js 是一个轻量级的 JavaScript UI 库,用于创建像本地应用程序的移动 Web 应用而不牺牲性能和体验.它是跨平台的,特定的UI设计,配置类似原生的过渡效果.App.js 的目的是 ...

  9. Web视频播放之video.js

    h5这么火是有它的理由的,支持原生视频播放,但是目前兼容性还不是很好,因此使用js框架支持网站视频播放是比较不错的选择. 下载video.js,我们可以通过官网去下,但是官网在国外,我尝试了几次均下载 ...

随机推荐

  1. java反射和代理

    这一篇我们说说反射和动态代理,为什么这两个要一起说呢?因为动态代理中会用到反射,而且java中反射的用处太多了,基本上无处不在,而且功能十分强大: 1.反射简介 反射是什么呢?一般都是很专业的说法:在 ...

  2. delphi中如何将string类型的字符串数据转化成byte[]字节数组类型的数据

    var  S:String;  P:PChar;  B:array of Byte;begin  S:='Hello';  SetLength(B,Length(S)+1);  P:=PChar(S) ...

  3. mysql 性能容量评估

    性能容量评估   分析上线业务场景 评估数据库服务器所需性能指标 预估可能成为瓶颈的服务器资源 帮助数据库性能调优   数据库服务器硬件性能指标项: 磁盘IO性能 内存容量 CPU 网络吞吐量 磁盘容 ...

  4. iOS博客列表

    国外 iOSDevWeekly NSHipster NSBlog objcio Raywenderlich Bignerdranch NSScreencast 需FQ Pilky.me jeremyw ...

  5. cocos3.x新建项目

    cocos new -p FishRunMan com.game.simple -l cpp

  6. 解决 java.sql.SQLException: Before start of result set

    java中使用如下代码做数据库连接,用以查询数据 *******************我是分割线************************************* try { Class.f ...

  7. ThinkPHP示例:CURD

    完整的控制器文件: class IndexAction extends Action { // 查询数据 public function index() { $Form = M("Form& ...

  8. extern static const abstract virtual

    extern static const abstract virtual const const.常量,初始化过后值不能再变化的变量.

  9. SSO单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas协议终极分析

    落雨 cas 单点登录 一.用户第一次访问web1应用. ps:上图少画了一条线,那一条线,应该再返回来一条,然后再到server端,画少了一步...谢谢提醒.而且,重定向肯定是从浏览器过去的.我写的 ...

  10. Node.js自动化技术实现(Java)

    Node.js自动化测试框架(NodeTestFramework):