使用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 17 Vue.js
Vue3配置axios跨域实现过程解析
Nov 25 Vue.js
在Vue中使用mockjs代码实例
Nov 25 Vue.js
Vue3+elementui plus创建项目的方法
Dec 01 Vue.js
vue项目中openlayers绘制行政区划
Dec 24 Vue.js
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
Dec 25 Vue.js
Vue 修改网站图标的方法
Dec 31 Vue.js
详解vue之自行实现派发与广播(dispatch与broadcast)
Jan 19 Vue.js
vue 动态添加的路由页面刷新时失效的原因及解决方案
Feb 26 Vue.js
Vue+Flask实现图片传输功能
Apr 01 Vue.js
vue @click.native 绑定原生点击事件
Apr 22 Vue.js
Vue操作Storage本地化存储
Apr 29 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/01/21 PHP
php使用Cookie实现和用户会话的方法
2015/01/21 PHP
php实现字符串翻转的方法
2015/03/27 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
php获取一定范围内取N个不重复的随机数
2016/05/28 PHP
[原创]smarty简单模板变量输出方法
2016/07/09 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
css3实现背景模糊的三种方式
2021/03/09 HTML / CSS
JavaScript根据数据生成百分比图和柱状图的实例代码
2013/07/14 Javascript
JavaScript中获取样式的原生方法小结
2014/10/08 Javascript
jQuery中append()方法用法实例
2014/12/25 Javascript
Angular实现form自动布局
2016/01/28 Javascript
5个最顶级jQuery图表类库插件【jquery插件库】
2016/05/05 Javascript
Vue.js原理分析之observer模块详解
2017/02/17 Javascript
ES6正则表达式的一些新功能总结
2017/05/09 Javascript
easyUI下拉列表点击事件使用方法
2017/05/18 Javascript
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
2019/07/06 Javascript
python中的一些类型转换函数小结
2013/02/10 Python
python实现定制交互式命令行的方法
2014/07/03 Python
用Python进行基础的函数式编程的教程
2015/03/31 Python
Python中random模块生成随机数详解
2016/03/10 Python
深入理解Python中的*重复运算符
2017/10/28 Python
Python实现替换文件中指定内容的方法
2018/03/19 Python
对Pandas DataFrame缺失值的查找与填充示例讲解
2018/11/06 Python
实例讲解Python3中abs()函数
2019/02/19 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
通过python3实现投票功能代码实例
2019/09/26 Python
python根据文本生成词云图代码实例
2019/11/15 Python
Python3与fastdfs分布式文件系统如何实现交互
2020/06/23 Python
解决Keras中CNN输入维度报错问题
2020/06/29 Python
Django通过设置CORS解决跨域问题
2020/11/26 Python
anaconda升级sklearn版本的实现方法
2021/02/22 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
红旗团支部事迹材料
2014/01/27 职场文书
责任书范本大全
2015/05/11 职场文书