0
点赞
收藏
分享

微信扫一扫

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

谷中百合517 2022-04-19 阅读 125
vue.js

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%:平台名称

举报

相关推荐

0 条评论