使用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中如何添加百度统计代码
Dec 19 Vue.js
vue实现图书管理系统
Dec 29 Vue.js
如何在VUE中使用vue-awesome-swiper
Jan 04 Vue.js
vue使用过滤器格式化日期
Jan 20 Vue.js
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
Feb 23 Vue.js
开发一个封装iframe的vue组件
Mar 29 Vue.js
vue实现同时设置多个倒计时
May 20 Vue.js
一篇文章学会Vue中间件管道
Jun 20 Vue.js
vue中利用mqtt服务端实现即时通讯的步骤记录
Jul 01 Vue.js
vue中使用mockjs配置和使用方式
Apr 06 Vue.js
vue组件vue-esign实现电子签名
Apr 21 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/11/16 PHP
Yii的CDbCriteria查询条件用法实例
2014/12/04 PHP
php通过exif_read_data函数获取图片的exif信息
2015/05/21 PHP
JavaScript 数组的 uniq 方法
2008/01/23 Javascript
向当前style sheet中插入一个新的style实现方法
2013/04/01 Javascript
javaScript 计算两个日期的天数相差(示例代码)
2013/12/27 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
2015/03/05 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
深入学习JavaScript中的Rest参数和参数默认值
2015/07/28 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
angularjs中的$eval方法详解
2017/04/24 Javascript
20170918 前端开发周报之JS前端开发必看
2017/09/18 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
vue-cli项目配置多环境的详细操作过程
2018/10/30 Javascript
微信小程序 子级页面返回父级并把子级参数带回父级实现方法
2019/08/22 Javascript
layui复选框限制选择个数的方法
2019/09/18 Javascript
[03:19]2016国际邀请赛中国区预选赛第四日TOP10镜头集锦
2016/07/01 DOTA
[55:35]VGJ.S vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python中eval与int的区别浅析
2019/08/11 Python
python实现把两个二维array叠加成三维array示例
2019/11/29 Python
Pycharm配置PyQt5环境的教程
2020/04/02 Python
python网络编程之五子棋游戏
2020/05/14 Python
css3针对移动端卡顿问题的解决(动画性能优化)
2020/02/14 HTML / CSS
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
国外软件测试工程师面试题
2016/12/09 面试题
语文教育专业推荐信范文
2013/11/25 职场文书
教师自我鉴定
2013/12/13 职场文书
文明市民先进事迹
2014/05/15 职场文书
公司领导班子对照检查存在问题整改措施
2014/10/02 职场文书
群众路线批评与自我批评发言稿
2014/10/16 职场文书
2014年教研员工作总结
2014/12/23 职场文书
成品仓管员岗位职责
2015/04/01 职场文书
关于军训的感想
2015/08/07 职场文书
如何使用Python实现一个简易的ORM模型
2021/05/12 Python
MySQL索引失效的典型案例
2021/06/05 MySQL