From 4a96116b7fa11acffea016c9a3d8cc426b9cfdd3 Mon Sep 17 00:00:00 2001 From: wanganxp Date: Fri, 29 Dec 2023 05:38:50 +0800 Subject: [PATCH] x --- docs/api/README.md | 30 ++++++++++++++++++++++++++++- docs/api/_sidebar.md | 1 - docs/api/ext.md | 40 ++++++++++++++++++++++++++++++++++++++- docs/plugin/uts-plugin.md | 3 ++- docs/uts/_sidebar.md | 3 ++- docs/uts/utsandroid.md | 1 + docs/uts/utsios.md | 1 + 7 files changed, 74 insertions(+), 5 deletions(-) diff --git a/docs/api/README.md b/docs/api/README.md index 3e8c41ff..8865bbd2 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 101879c5..68dc64f5 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 e3812196..e597f1f6 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 676eabca..186a9e54 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 8a26ad09..078b5d32 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 69c0e7bc..4b92f7d2 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 41bdbd84..c75497c5 100644 --- a/docs/uts/utsios.md +++ b/docs/uts/utsios.md @@ -1,5 +1,6 @@ # UTSiOS +app-iOS平台专有内置对象。在uni-app和uni-app x的uts环境中均可使用。 ## 静态方法 -- GitLab