# API概述 uni-app x项目的uts代码中可以使用很多API。包括: 1. uts的api,包括[内置对象](../uts/buildin-object-api/global.md),以及平台专有对象[UTSAndroid](../uts/utsandroid.md)和[UTSiOS](../uts/utsios.md) 2. 全局api,前面不需要加`uni.`。如`getApp` 3. uni.xxx的内置api。见左侧 4. uniCloud.xxx的内置api [详见](./unicloud/README.md) 5. dom的api [详见](../dom/README.md) 6. vue的api [详见](../vue/README.md) 7. os原生api ## os原生api的使用 由于uts可以直接调用Android和iOS的api,所以os和三方sdk的能力都可以在uts中调用。如下: ```vue ``` 上面的示例,在页面启动时打印了2行日志,显示手机型号。 - uni.getSystemInfoSync,是uni的api - import的Build,是Android os的api 可以看出,在uni-app x里,可以直接调用os的能力,不受限制,语法是uts的语法,但需要了解什么功能在原生里是哪个api。 使用`uni.getSystemInfoSync`则比较简单,看uni的文档即可,且可跨平台。 其实,[uni.getSystemInfoSync](https://gitcode.net/dcloud/uni-api/-/blob/master/uni_modules/uni-getSystemInfo/utssdk/app-android/index.uts) 的内部实现就是一个uts模块,底层使用了一样的代码,也是import了android.os.Build。 大多数uni.的api,都是uts开发的,它们陆续开源在[uni-api](https://gitcode.net/dcloud/uni-api)。 插件市场也有很多做好的uts插件,方便开发者拿来即用。[uts插件](https://ext.dcloud.net.cn/?cat1=8&type=UpdatedDate) 虽然上述页面可以直接调用原生Android能力,但正规开发时,原生能力应封装为[uni_modules](https://uniapp.dcloud.net.cn/plugin/uni_modules.html)形式的[uts插件](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html)。这样方便共享、方便跨平台。(iOS在js驱动模式时,uvue页面中不支持调用swift API,需封装为uts插件调用原生API) uni-app x 中不再支持plus和weex的API。过去plus api中一些常用的api,一部分在uni-app x中进行了替换增补、一部分提供了uts操作原生的示例代码。[详见](ext.md) 网上可以找到很多kotlin调用系统api的代码,但如何使用uts来调用这些系统api? 以上面的获取手机型号的代码为例: 1. 打开一个靠谱的ai,询问:"kotlin中获取手机型号的代码,需包含导入的类",得到如下代码: ```kotlin import android.os.Build fun getDeviceModel(): String { return Build.MODEL } ``` 2. 再问ai:"把上述代码转为ts代码" ```ts function getDeviceModel(): string { return Build.MODEL; } ``` 这里注意几个差别: - kotlin中import包,是`import android.os.Build`,而uts是` import Build from 'android.os.Build'`。import后面需要跟名字,from后面需要引号括起来。 - import包,需要在uvue页面的`export default`外。复杂的原生插件应该直接创建uts插件,放在单独的uni_modules中。 - kotlin定义一个函数是`fun`,而uts是`function` - kotlin中定义一个常量是val,而uts是const;kotlin的变量定义是var,而uts推荐使用let。 更复杂的例子可以[参考](ext.md#kt2uts) ## 生命周期@liftcycle 生命周期是一种特殊事件,对于应用、页面、组件,uni-app x提供了一批对应的生命周期,比如应用的onLaunch、页面的onLoad、组件的created。 - 应用生命周期:[详见](../collocation/app.md#applifecycle) - 页面生命周期:[详见](../page.md#lifecycle) - 组件生命周期:[详见](../vue/component.md#component-lifecycle) 除了生命周期,uni还提供了一批其他on/off事件监听API,比如uni.onPushMessage()、uni.offPushMessage()。这些不属于生命周期。