使用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+iview实现分页及查询功能
Nov 17 Vue.js
vue3.0+vue-router+element-plus初实践
Dec 02 Vue.js
vue 导航守卫和axios拦截器有哪些区别
Dec 19 Vue.js
vue实现树状表格效果
Dec 29 Vue.js
梳理一下vue中的生命周期
Dec 30 Vue.js
详解template标签用法(含vue中的用法总结)
Jan 12 Vue.js
vue项目两种方式实现竖向表格的思路分析
Apr 28 Vue.js
vue实现同时设置多个倒计时
May 20 Vue.js
Vue elementUI表单嵌套表格并对每行进行校验详解
Feb 18 Vue.js
Vue.js中v-for指令的用法介绍
Mar 13 Vue.js
vue route新窗口跳转页面并且携带与接收参数
Apr 10 Vue.js
vue实现登陆页面开发实践
May 30 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延迟静态绑定实例分析
2015/02/08 PHP
[原创]smarty简单模板变量输出方法
2016/07/09 PHP
浅析php中array_map和array_walk的使用对比
2016/11/20 PHP
使用CSS3实现字体颜色渐变的实现
2021/03/09 HTML / CSS
jQuery 自动增长的文本输入框实现代码
2010/04/02 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
二叉树先序遍历的非递归算法具体实现
2014/01/09 Javascript
Javascript中的匿名函数与封装介绍
2015/03/15 Javascript
JQuery分屏指示器图片轮换效果实例
2015/05/21 Javascript
Node.js刷新session过期时间的实现方法推荐
2016/05/18 Javascript
微信小程序 实战小程序实例
2016/10/08 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
2016/11/23 Javascript
详解闭包解决jQuery中AJAX的外部变量问题
2017/02/22 Javascript
详解Nuxt.js Vue服务端渲染摸索
2018/02/08 Javascript
微信小程序Getuserinfo解决方案图解
2018/08/24 Javascript
NodeJS实现一个聊天室功能
2019/11/25 NodeJs
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
python字符串的常用操作方法小结
2016/05/21 Python
Windows下安装Django框架的方法简明教程
2018/03/28 Python
Python检查图片是否损坏及图片类型是否正确过程详解
2019/09/30 Python
tensorflow图像裁剪进行数据增强操作
2020/06/30 Python
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
Lookfantastic法国官网:英国知名美妆购物网站
2017/10/28 全球购物
Blue Nile台湾:钻石珠宝商,订婚首饰、结婚戒指和精品首饰
2017/11/24 全球购物
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
牧马人澳大利亚官网:Wrangler澳大利亚
2019/10/08 全球购物
数据库方面面试题
2012/04/22 面试题
使用索引有什么好处
2016/07/27 面试题
实习老师离校感言
2014/02/03 职场文书
本科毕业生求职自荐信
2014/02/03 职场文书
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
先进党员事迹材料
2014/12/24 职场文书
某某店铺的开业庆典主持词范本
2019/11/25 职场文书
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python
SpringBoot整合Redis入门之缓存数据的方法
2021/11/17 Redis