提交 4a96116b 编写于 作者: W wanganxp

x

上级 24574ba2
...@@ -41,4 +41,32 @@ uni-app x项目的uts代码中可以使用很多API。包括: ...@@ -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_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) uni-app x 中不再支持plus和weex的API。过于plus api中一些常用的api,一部分在uni-app x中进行了替换增补、一部分提供了uts操作原生的示例代码。[详见](ext.md)
\ No newline at end of file
网上可以找到很多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)
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
* 界面 * 界面
* [交互反馈](prompt.md) * [交互反馈](prompt.md)
* [动态加载字体](load-font-face.md) * [动态加载字体](load-font-face.md)
* [截屏事件](capturescreen.md)
* 网络 * 网络
* [发起请求request](request.md) * [发起请求request](request.md)
* [上传文件](upload-file.md) * [上传文件](upload-file.md)
......
# 其它api # 其它api
## uni api替代@uni
插件市场和hello示例中还有一批可替代uni内置api的插件或示例代码,比如: 插件市场和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/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` - [拨打电话](https://ext.dcloud.net.cn/plugin?id=15235)`uni.makePhoneCall`
...@@ -42,6 +43,7 @@ ...@@ -42,6 +43,7 @@
</script> </script>
``` ```
## plus api替代@plus
uni-app x 中不再支持plus和weex的API。过于plus api中一些常用的api,在uni-app x中进行了替换增补。 uni-app x 中不再支持plus和weex的API。过于plus api中一些常用的api,在uni-app x中进行了替换增补。
- plus.runtime.quit => [uni.exit](./exit.md) - plus.runtime.quit => [uni.exit](./exit.md)
- plus.runtime.install => [uni.installApk](./install-apk.md) - plus.runtime.install => [uni.installApk](./install-apk.md)
...@@ -75,4 +77,40 @@ uni-app x 中不再支持plus和weex的API。过于plus api中一些常用的api ...@@ -75,4 +77,40 @@ uni-app x 中不再支持plus和weex的API。过于plus api中一些常用的api
} }
</script> </script>
``` ```
\ 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
...@@ -2,7 +2,8 @@ ...@@ -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) UTS插件开发官方QQ交流群:527828934 [点此加入](https://qm.qq.com/cgi-bin/qm/qr?k=3Z-cQCXGiTyThkrqufUNNw7TaJd2xEPb&jump_from=webapi&authKey=4UQdplol3kPLwlDfuSdYleE8JUHnJChC2+8HcuBavZq2q51iAkLdzT4Bupt4ZJZu)
......
...@@ -26,10 +26,11 @@ ...@@ -26,10 +26,11 @@
* [Error](buildin-object-api/error.md) * [Error](buildin-object-api/error.md)
* [Console](buildin-object-api/console.md) * [Console](buildin-object-api/console.md)
* [全局](buildin-object-api/global.md) * [全局](buildin-object-api/global.md)
* 平台对象和 API * 平台专用对象和 API
* [UTSAndroid](utsandroid.md) * [UTSAndroid](utsandroid.md)
* [UTSAndroidHookProxy](utsandroidhookproxy.md) * [UTSAndroidHookProxy](utsandroidhookproxy.md)
* [UTSiOS](utsios.md) * [UTSiOS](utsios.md)
* [UTSiOSHookProxy](utsioshookproxy.md) * [UTSiOSHookProxy](utsioshookproxy.md)
* [关键词](keywords.md) * [关键词](keywords.md)
* [UTS App插件开发](../plugin/uts-plugin.md)
<!-- * [学习资料](learning.md) --> <!-- * [学习资料](learning.md) -->
# UTSAndroid # UTSAndroid
app-android平台专有内置对象。在uni-app和uni-app x的uts环境中均可使用。
## 静态方法 ## 静态方法
......
# UTSiOS # UTSiOS
app-iOS平台专有内置对象。在uni-app和uni-app x的uts环境中均可使用。
## 静态方法 ## 静态方法
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册