使用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 组件注册
Nov 20 Vue.js
Vue Elenent实现表格相同数据列合并
Nov 30 Vue.js
详解Vue中的自定义指令
Dec 07 Vue.js
vue 使用 sortable 实现 el-table 拖拽排序功能
Dec 26 Vue.js
梳理一下vue中的生命周期
Dec 30 Vue.js
如何理解Vue前后端数据交互与显示
May 10 Vue.js
Vue提供的三种调试方式你知道吗
Jan 18 Vue.js
vue中this.$http.post()跨域和请求参数丢失的解决
Apr 08 Vue.js
vue实力踩坑之push当前页无效
Apr 10 Vue.js
vue项目打包后路由错误的解决方法
Apr 13 Vue.js
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
Apr 30 Vue.js
vue el-table实现递归嵌套的示例代码
Aug 14 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
一个从别的网站抓取信息的例子(域名查询)
2006/10/09 PHP
php中引用符号(&amp;)的使用详解
2013/11/13 PHP
tp5 sum某个字段相加得到总数的例子
2019/10/18 PHP
jQuery旋转插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
2013/01/16 Javascript
JS实现闪动的title消息提醒效果
2014/06/20 Javascript
实现前后端数据交互方法汇总
2015/04/07 Javascript
jQuery实现垂直半透明手风琴特效代码分享
2015/08/21 Javascript
大型JavaScript应用程序架构设计模式
2016/06/29 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
2016/07/21 Javascript
vue-router 中router-view不能渲染的解决方法
2017/05/23 Javascript
原生js二级联动效果
2017/06/20 Javascript
vue数组对象排序的实现代码
2018/06/20 Javascript
微信小程序实现展示评分结果功能
2019/02/15 Javascript
性能优化篇之Webpack构建速度优化的建议
2019/04/03 Javascript
layui的select联动实现代码
2019/09/28 Javascript
JavaScript直接调用函数与call调用的区别实例分析
2020/05/22 Javascript
在Vue中使用HOC模式的实现
2020/08/23 Javascript
vue a标签点击实现赋值方式
2020/09/07 Javascript
vue解决跨域问题(推荐)
2020/11/10 Javascript
python保存字符串到文件的方法
2015/07/01 Python
深入浅析python继承问题
2016/05/29 Python
Flask框架实现给视图函数增加装饰器操作示例
2018/07/16 Python
django中ORM模型常用的字段的使用方法
2019/03/05 Python
Django 模型类(models.py)的定义详解
2019/07/19 Python
Python while循环使用else语句代码实例
2020/02/07 Python
python从PDF中提取数据的示例
2020/10/30 Python
Python并发爬虫常用实现方法解析
2020/11/19 Python
CSS3制作皮卡丘动画壁纸的示例
2020/11/02 HTML / CSS
装修五一活动策划案
2014/01/23 职场文书
巾帼文明岗申报材料
2014/05/01 职场文书
公司慰问信范文
2015/03/23 职场文书
政审证明材料
2015/06/19 职场文书
2015大学迎新晚会主持词
2015/07/16 职场文书
大学生党课感想
2015/08/11 职场文书
python3 删除所有自定义变量的操作
2021/04/08 Python
Java 在线考试云平台的实现
2021/11/23 Java/Android