diff --git a/docs/api/README.md b/docs/api/README.md index 3e8c41ffefb957cc4e5cdd423fa477c231fff596..8865bbd2d8589fa054cf703ba6c90e72ee432d6b 100644 --- a/docs/api/README.md +++ b/docs/api/README.md @@ -41,4 +41,32 @@ uni-app x项目的uts代码中可以使用很多API。包括: 虽然上述页面可以直接调用原生能力,但一般原生能力建议封装为[uni_modules](https://uniapp.dcloud.net.cn/plugin/uni_modules.html)形式的[uts插件](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html)。这样方便共享、方便跨平台。 -uni-app x 中不再支持plus和weex的API。过于plus api中一些常用的api,一部分在uni-app x中进行了替换增补、一部分提供了uts操作原生的示例代码。[详见](ext.md) \ No newline at end of file +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) diff --git a/docs/api/_sidebar.md b/docs/api/_sidebar.md index 101879c53499843b2d222b915d35cd9f59712d60..68dc64f51e9c41f8048fa83f096d88dd7ccdfece 100644 --- a/docs/api/_sidebar.md +++ b/docs/api/_sidebar.md @@ -21,7 +21,6 @@ * 界面 * [交互反馈](prompt.md) * [动态加载字体](load-font-face.md) - * [截屏事件](capturescreen.md) * 网络 * [发起请求request](request.md) * [上传文件](upload-file.md) diff --git a/docs/api/ext.md b/docs/api/ext.md index e3812196f8f7502e9dad317fb7beba40b64d2a4c..e597f1f6959be54faec4dcd66a150c0b139731bc 100644 --- a/docs/api/ext.md +++ b/docs/api/ext.md @@ -1,5 +1,6 @@ # 其它api +## uni api替代@uni 插件市场和hello示例中还有一批可替代uni内置api的插件或示例代码,比如: - [剪切板](https://ext.dcloud.net.cn/search?q=%E5%89%AA%E5%88%87%E6%9D%BF&orderBy=Relevance&cat1=8&cat2=81):`uni.setClipboardData`、`uni.getClipboardData` - [拨打电话](https://ext.dcloud.net.cn/plugin?id=15235):`uni.makePhoneCall` @@ -42,6 +43,7 @@ ``` +## plus api替代@plus uni-app x 中不再支持plus和weex的API。过于plus api中一些常用的api,在uni-app x中进行了替换增补。 - plus.runtime.quit => [uni.exit](./exit.md) - plus.runtime.install => [uni.installApk](./install-apk.md) @@ -75,4 +77,40 @@ uni-app x 中不再支持plus和weex的API。过于plus api中一些常用的api } ``` - \ No newline at end of file + +## kotlin代码转uts简易指南@kt2uts + +以上面的打开schema代码为例。 + +1. 打开一个靠谱的ai,询问:"kotlin中打开系统浏览器的代码",得到如下代码: +```kotlin +import android.content.Intent +import android.net.Uri + +fun openSystemBrowser(url: String) { + val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url)) + startActivity(intent) +} +``` + +2. 再问ai:"把上述代码转为ts代码"" +```ts +import Intent from 'android.content.Intent'; +import Uri from 'android.net.Uri'; + +function openSystemBrowser(url: string): void { + const intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); + startActivity(intent); +} +``` + +这里注意几个差别: +- kotlin中import包,是`import android.content.Intent`,而uts是`import Intent from 'android.content.Intent'`。import后面需要跟名字,from后面需要引号括起来。 +- kotlin定义一个函数是`fun`,而uts是`function` +- kotlin中定义一个常量是val,而uts是const;kotlin的变量定义是var,而uts推荐使用let。 +- uts中实例化对象需要使用new关键字。 +- kotlin中是自己创建activity、自己管理。而uts中activity已经被uni-app x框架创建好了,要获取当前activity,有专门的api,`const context = UTSAndroid.getUniActivity()!` + +有时你得到的kotlin代码可能是简写,或者ai转ts时搞错了,需要自己推理一下缺什么,简单补补改改。 + +官方的uni api,都是uts代码调用系统api,这里面很多例子可以参考:[https://gitcode.net/dcloud/uni-api](https://gitcode.net/dcloud/uni-api) \ No newline at end of file diff --git a/docs/plugin/uts-plugin.md b/docs/plugin/uts-plugin.md index 676eabcad9a05495fe763daf8da424932c80c0a2..186a9e547461864d781c1c4457b80c6c34f5b5f3 100644 --- a/docs/plugin/uts-plugin.md +++ b/docs/plugin/uts-plugin.md @@ -2,7 +2,8 @@ ## 介绍 -> HBuilderX 3.6+ 支持uts插件 +> HBuilderX 3.6+ 支持uni-app中使用uts插件 +> HBuilderX 3.9+ 支持uni-app x中使用uts插件 UTS插件开发官方QQ交流群:527828934 [点此加入](https://qm.qq.com/cgi-bin/qm/qr?k=3Z-cQCXGiTyThkrqufUNNw7TaJd2xEPb&jump_from=webapi&authKey=4UQdplol3kPLwlDfuSdYleE8JUHnJChC2+8HcuBavZq2q51iAkLdzT4Bupt4ZJZu) diff --git a/docs/uts/_sidebar.md b/docs/uts/_sidebar.md index 8a26ad09d055f74194b6ebff3af1de210f95c51f..078b5d32aea17b9782903e49ba5ba04537c9c6d7 100644 --- a/docs/uts/_sidebar.md +++ b/docs/uts/_sidebar.md @@ -26,10 +26,11 @@ * [Error](buildin-object-api/error.md) * [Console](buildin-object-api/console.md) * [全局](buildin-object-api/global.md) -* 平台对象和 API +* 平台专用对象和 API * [UTSAndroid](utsandroid.md) * [UTSAndroidHookProxy](utsandroidhookproxy.md) * [UTSiOS](utsios.md) * [UTSiOSHookProxy](utsioshookproxy.md) * [关键词](keywords.md) +* [UTS App插件开发](../plugin/uts-plugin.md) diff --git a/docs/uts/utsandroid.md b/docs/uts/utsandroid.md index 69c0e7bcff6212258b3d8126d31864669560a9d6..4b92f7d2aa4714198da1a74835664dfb99bb5bd5 100644 --- a/docs/uts/utsandroid.md +++ b/docs/uts/utsandroid.md @@ -1,5 +1,6 @@ # UTSAndroid +app-android平台专有内置对象。在uni-app和uni-app x的uts环境中均可使用。 ## 静态方法 diff --git a/docs/uts/utsios.md b/docs/uts/utsios.md index 41bdbd8424f061c9b47990b55d8d849b6a4c9333..c75497c586a47fee77e5f28594987840481a1ee9 100644 --- a/docs/uts/utsios.md +++ b/docs/uts/utsios.md @@ -1,5 +1,6 @@ # UTSiOS +app-iOS平台专有内置对象。在uni-app和uni-app x的uts环境中均可使用。 ## 静态方法