uniapp小程序运行环境判断和跨度兼容

本文介绍了uni-app中进行跨端兼容的两种主要方法:编译期判断和运行期判断。编译期判断通过条件编译注释实现不同平台的代码差异化,而运行期判断则在运行时根据设备信息处理兼容性问题。文章强调了条件编译在减少代码冗余和维护性上的优势,并提供了示例代码。同时,还讨论了在uni-app中进行平台个性化实现的策略及其挑战。
摘要由CSDN通过智能技术生成

两种方法之间写在App.vue都可以使用

1.编译期判断

编译期判断,即条件编译,不同平台在编译出包后已经是不同的代码。

条件编译是用特殊的注释作为标记,在编译时根据这些特殊的注释,将注释里面的代码编译到不同平台

		//平台判断两种场景
			// 第一条件编译
			//#ifdef H5
			alert('uniapp在web端打开');
			//#endif

2运行期判断 


更多的是获取用户的设备信息,处理不同平台的业务逻辑兼容性建议使用条件编译

uni.getSystemInfoSync().platform   wx.getSystemInfoSync()
​
使用语法如下:
// 运行期判断(代码已经打包好  只是控制输出不输出
switch(uni.getSystemInfoSync().platform){
                case 'android':
                   console.log('运行Android上')
                   break;
                case 'ios':
                   console.log('运行iOS上')
                   break;
                default:
                   console.log('运行在开发者工具上')
                   break;
            }

3.跨端兼容-小结
uni-app已将常用的组件、JS API封装到框架中,开发者按照uni-app规范开发即可保证多平台兼容,大部分业务均可直接满足,但每个平台有自己的一些特性,因此会存在一些无法跨平台的情况。
·大量写if else,会造成代码执行性能低下和管理混乱。
·编译到不同的工程后二次修改,会让后续升级变的很麻烦。


在C语言中,通过#ifdef、#ifndef的方式,为windows、mac等不同os编译不同的代码。uni-app 参考这个思路,为uni-app 提供了条件编译手段,在一个工程里优雅的完成了平台个性化实现。



条件编译是用特殊的注释作为标记,在编译时根据这些特殊的注释,将注释里面的代码编译到不同平台。

写法:以 #ifdef 或#ifndef 加 %PLATFORM%开头,以#endif结尾。
#ifdef: if defined仅在某平台存在
 #ifndef: if not defined除了某平台均存在.

%PLATFORM%:平台名称

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值