使用vue判断当前环境是安卓还是IOS


Posted in Vue.js onApril 12, 2022

vue判断安卓还是IOS

最近工作上遇到这样一个需求

vue写的页面,需要同时跟安卓和ios进行交互;

  • 若是安卓,执行代码:android.finishActivity();
  • 若是IOS,执行代码:
try { 
 window.webkit.messageHandlers.finishActivity.postMessage(""); 
 }catch(error) { 
 console.log('WKWebView post message');
}

所以我们需要进行一个判断

是安卓还是IOS:因为是做的单独的APP所以没有考虑微信的问题

finishActivity() {
        let ua = navigator.userAgent.toLowerCase();
        //android终端
        let isAndroid = ua.indexOf('Android') > -1 || ua.indexOf('Adr') > -1; 
        //ios终端
        let isiOS = !!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
        
          if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
            //ios
            console.log(" 我是ios")
            //这里是和IOS商量好的写法,调用IOS的finishActivity方法
            try { 
              window.webkit.messageHandlers.finishActivity.postMessage(""); 
            }catch(error) { 
                console.log('WKWebView post message');
              }
          } else(/(Android)/i.test(navigator.userAgent)) {
            //android
            console.log("我是android")
            //这里是和安卓商量好的写法,调用安卓的finishActivity方法
            android.finishActivity();            
          }       
  }

然后就可以一个页面同时给安卓和IOS进行交互啦! 

H5端判断安卓跟ios显示不同的背景图

html:

<div :class="`${isApple==true ? 'index-cont-phone' : 'index-cont'}`" ></div>

css:

    .index-cont{
        width: 100%;
        height: auto;
        min-height: 100vh;
        overflow-x:hidden;
        background: url("https://tuoluohuodong.oss-cn-shenzhen.aliyuncs.com/interaction_h5/main_bg3.png") no-repeat;
        background-size: contain;
        margin: 0;
        padding-bottom: 199%;
        // position: fixed;
    }
    .index-cont-phone{
        width: 100%;
        height: auto;
        min-height: 100vh;
        overflow-x:hidden;
        background: url("https://tuoluohuodong.oss-cn-shenzhen.aliyuncs.com/interaction_h5/main_bg4.png") no-repeat;
        background-size: contain;
        margin: 0;
        padding-bottom: 199%;
        // position: fixed;
    }

js:

<script>
export default {
    name: "index",
    data() {
        return {
            isApple:true,
                }
            },
     },
     methods: {
       // 判断是安卓还是ios
        appDown() {
            var u = navigator.userAgent;
            var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
            var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
            if(isiOS){
                this.isApple = true
            }else if(isAndroid){
                this.isApple = false
            }
       },
   mounted() {
          // 调用判断ios与安卓方法
        this.appDown();
    },
 }
</script>
Vue.js 相关文章推荐
在Vue中使用CSS3实现内容无缝滚动的示例代码
Nov 27 Vue.js
Vue在H5 项目中使用融云进行实时个人单聊通讯
Dec 14 Vue.js
vue监听滚动事件的方法
Dec 21 Vue.js
vue中配置scss全局变量的步骤
Dec 28 Vue.js
vscode自定义vue模板的实现
Jan 27 Vue.js
Vue 数据响应式相关总结
Jan 28 Vue.js
vue实现禁止浏览器记住密码功能的示例代码
Feb 03 Vue.js
基于vue的video播放器的实现示例
Feb 19 Vue.js
vue常用高阶函数及综合实例
Feb 25 Vue.js
Vue Element UI自定义描述列表组件
May 18 Vue.js
vue 数字翻牌器动态加载数据
Apr 20 Vue.js
vue router 动态路由清除方式
May 25 Vue.js
vue配置型表格基于el-table拓展之table-plus组件
Apr 12 #Vue.js
vue数据字典取键值项目的字典问题
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
vue选项卡切换的实现案例
分享一个vue实现的记事本功能案例
vue代码分块和懒加载非必要资源文件
Apr 11 #Vue.js
vue打包时去掉所有的console.log
You might like
PHP分页类集锦
2014/11/18 PHP
php页面缓存方法小结
2015/01/10 PHP
PHP去除字符串最后一个字符的三种方法实例
2017/03/01 PHP
JavaScript入门教程(11) js事件处理
2009/01/31 Javascript
JQuery里面的几种选择器 查找满足条件的元素$(&quot;#控件ID&quot;)
2011/08/23 Javascript
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
javascript判断chrome浏览器的方法
2014/03/26 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
2014/05/14 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
JS常用知识点整理
2017/01/21 Javascript
vuex提交state&amp;&amp;实时监听state数据的改变方法
2018/09/16 Javascript
详解js删除数组中的指定元素
2018/10/31 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
2019/05/09 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
node.JS二进制操作模块buffer对象使用方法详解
2020/02/06 Javascript
[01:15:29]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第三局
2016/03/04 DOTA
在Python中使用AOP实现Redis缓存示例
2017/07/11 Python
python实战教程之自动扫雷
2018/07/13 Python
详解Python进阶之切片的误区与高级用法
2018/12/24 Python
python调用百度地图WEB服务API获取地点对应坐标值
2019/01/16 Python
解析python实现Lasso回归
2019/09/11 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
2019/10/24 Python
浅谈matplotlib 绘制梯度下降求解过程
2020/07/12 Python
css3 border-image使用说明
2010/06/23 HTML / CSS
Blank NYC官网:夹克、牛仔裤等
2020/12/16 全球购物
英国在线购买轮胎、预订汽车、汽车维修和装配网站:Protyre
2020/04/12 全球购物
软件生产职位结构化面试主要考察要素及面试题库
2015/06/12 面试题
商场消防管理制度
2014/01/12 职场文书
50岁生日感言
2014/01/23 职场文书
外语系大学生自荐信范文
2014/03/01 职场文书
2014年预备党员学习两会心得体会
2014/03/17 职场文书
公司保洁员管理制度
2015/08/04 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP
分享提高 Python 代码的可读性的技巧
2022/03/03 Python
Nginx实现负载均衡的项目实践
2022/03/18 Servers