使用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的mixin策略
Nov 19 Vue.js
vue 在单页面应用里使用二级套嵌路由
Dec 19 Vue.js
vue 实现基础组件的自动化全局注册
Dec 25 Vue.js
Vue ​v-model相关知识总结
Jan 28 Vue.js
vue 数据双向绑定的实现方法
Mar 04 Vue.js
vue中data改变后让视图同步更新的方法
Mar 29 Vue.js
vue+iview实现手机号分段输入框
Mar 25 Vue.js
vue整合百度地图显示指定地点信息
Apr 06 Vue.js
vue判断按钮是否可以点击
Apr 09 Vue.js
vue2的 router在使用过程中遇到的一些问题
Apr 13 Vue.js
vue项目proxyTable配置和部署服务器
Apr 14 Vue.js
vue里使用create, mounted调用方法
Apr 26 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返回字符串中所有单词的方法
2015/03/09 PHP
laravel创建类似ThinPHP中functions.php的全局函数
2016/11/26 PHP
PHP array_reverse() 函数原理及实例解析
2020/07/14 PHP
jQuery实战之仿淘宝商城左侧导航效果
2011/04/12 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
告诉你什么是javascript的回调函数
2014/09/04 Javascript
Javascript获取表单名称(name)的方法
2015/04/02 Javascript
jquery插件splitScren实现页面分屏切换模板特效
2015/06/16 Javascript
JS+CSS实现表格高亮的方法
2015/08/05 Javascript
Bootstrap每天必学之折叠
2016/04/12 Javascript
nodejs学习笔记之路由
2017/03/27 NodeJs
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
BetterScroll 在移动端滚动场景的应用
2017/09/18 Javascript
解决webpack dev-server不能匹配post请求的问题
2018/08/24 Javascript
JS实现百度网盘任意文件强制下载功能
2018/08/31 Javascript
Vue实现本地购物车功能
2018/12/05 Javascript
原生js实现轮播图特效
2020/05/04 Javascript
[01:18]DOTA2超级联赛专访hanci ForLove淘汰感言曝光
2013/06/04 DOTA
Python中使用logging模块打印log日志详解
2015/04/05 Python
python抓取网页中图片并保存到本地
2015/12/01 Python
mac系统安装Python3初体验
2018/01/02 Python
浅谈Tensorflow模型的保存与恢复加载
2018/04/26 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2018/09/19 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
python3 批量获取对应端口服务的实例
2019/07/25 Python
详解Python3 pickle模块用法
2019/09/16 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
2020/03/30 Python
如何理解python面向对象编程
2020/06/01 Python
荷兰优雅女装网上商店:Heine
2016/11/14 全球购物
音乐器材管理制度
2014/01/31 职场文书
语文教学随笔感言
2014/02/18 职场文书
入学申请自荐信范文
2014/02/26 职场文书
财务稽核岗位职责
2015/04/13 职场文书
【超详细】八大排序算法的各项比较以及各自特点
2021/03/31 Python
nginx location中多个if里面proxy_pass的方法
2021/03/31 Servers