两种方法之间写在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%:平台名称