API概述
uni-app x项目的uts代码中可以使用很多API。包括:
-
uts的api,包括内置对象,以及平台专有对象UTSAndroid和UTSiOS
-
全局api,前面不需要加
uni.
。如getApp
-
uni.xxx的内置api。见左侧
-
uniCloud.xxx的内置api 详见
-
dom的api 详见
-
vue的api 详见
-
os原生api
由于uts可以直接调用Android和iOS的api,所以os和三方sdk的能力都可以在uts中调用。如下:
<script>
import Build from 'android.os.Build';
export default {
onLoad() {
console.log(Build.MODEL); //调用原生对象,返回手机型号
console.log(uni.getSystemInfoSync().deviceModel); //调用uni API,返回手机型号。与上一行返回值相同
}
}
</script>
上面的示例,在页面启动时打印了2行日志,显示手机型号。
- uni.getSystemInfoSync,是uni的api
- import的Build,是Android os的api
可以看出,在uni-app x里,可以直接调用os的能力,不受限制,语法是uts的语法,但需要了解什么功能在原生里是哪个api。
使用uni.getSystemInfoSync
则比较简单,看uni的文档即可,且可跨平台。
其实,uni.getSystemInfoSync 的内部实现就是一个uts模块,底层使用了一样的代码,也是import了android.os.Build。
大多数uni.的api,都是uts开发的,它们陆续开源在uni-api。
插件市场也有很多做好的uts插件,方便开发者拿来即用。uts插件
虽然上述页面可以直接调用原生能力,但一般原生能力建议封装为uni_modules形式的uts插件。这样方便共享、方便跨平台。
uni-app x 中不再支持plus和weex的API。过于plus api中一些常用的api,一部分在uni-app x中进行了替换增补、一部分提供了uts操作原生的示例代码。详见
网上可以找到很多kotlin调用系统api的代码,但如何使用uts来调用这些系统api?
以上面的获取手机型号的代码为例:
- 打开一个靠谱的ai,询问:"kotlin中获取手机型号的代码,需包含导入的类",得到如下代码:
import android.os.Build
fun getDeviceModel(): String {
return Build.MODEL
}
- 再问ai:"把上述代码转为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。
更复杂的例子可以参考