提交 8f32d180 编写于 作者: W wanganxp

uts plugin

上级 5d4e4d99
# UTS插件介绍
## 1 介绍
## 介绍
> HBuilderX 3.6+ 支持uts插件
......@@ -64,7 +64,7 @@ uts 插件编译到 app 平台时,在功能上相当于 uni-app 之前的 app
- uts 在 app 上不运行在 js 引擎里,是真正的原生。
## 2 创建uts插件
## 创建uts插件
### uts 插件目录结构
......@@ -418,9 +418,9 @@ uts插件在iOS平台的其它原生配置文件,可以在其中配置依赖
+ 有关 dependencies-pods 配置和 CocoaPods 使用的更多细节[详见](https://uniapp.dcloud.net.cn/plugin/uts-ios-cocoapods.html)
## 3 开发uts插件
## 开发uts插件
### 3.1 获取电量插件示例
### 获取电量插件示例
以获取电量为例,介绍`uts`插件开发步骤
......@@ -609,13 +609,13 @@ export default function getBatteryLevel():number {
至此,我们已经完成一个 iOS 平台上获取电量的原生能力封装。
### 3.2 `uts`与`uni-app`环境数据交互说明
### `uts`与`uni-app`环境数据交互说明
UTS向uni-app传值,支持下列类型:
1 TS基本数据类型: number,string,boolean 等
1. TS基本数据类型: number,string,boolean 等
```ts
// 基础类型-Number
export function getPluginVersionNum(): number{
......@@ -627,7 +627,7 @@ export function getPluginVersion(): string{
}
```
2 UTSJSONObjct
2. UTSJSONObjct
```ts
// UTSJSONObjct 示例
......@@ -701,6 +701,8 @@ postUserInfo({
```
更多UTSJSONObject的用法,[详见](../uts/data-type.md#UTSJSONObject)
遗留问题:
有些场景,我们需要参数对象包含对象数组,比如
......@@ -739,7 +741,7 @@ list1.forEach((item : any) => {
这个问题,我们稍后会改进。
## 4 前端使用插件
## 前端使用插件
虽然uts插件由uts语法开发,但前端引用插件并不要求一定需要ts,普通js即可引用uts插件。
......@@ -761,7 +763,7 @@ UTSHello.getBatteryCapacity()
需要特别注意的是,import UTS插件时,只能到插件的根目录,不能直接引入到最终的文件
```
```ts
// 正确的写法
import * as UTSHello from "../../../uni_modules/uts-osapi";
......@@ -794,9 +796,9 @@ getBatteryCapacity()
更多开发示例,可以参考 [HelloUTS](https://gitcode.net/dcloud/hello-uts)
## 5 真机运行
## 真机运行
### 5.1 UTS支持真机运行
### UTS支持真机运行
**uts虽然是原生代码,但同样具有真机运行功能**
......@@ -811,7 +813,7 @@ getBatteryCapacity()
- HBuilderX 3.6.9以下版本,uts插件不支持热刷新,真机需提交云端打包生成[自定义基座](https://uniapp.dcloud.net.cn/tutorial/run/run-app.html#customplayground)
- HBuilderX 3.6.9+,uts插件,支持本地编译和真机运行 [详情](https://uniapp.dcloud.net.cn/tutorial/run/uts-development-ios.html)
### 5.2 自定义基座
### 自定义基座
自定义基座支持uts插件。
......@@ -825,15 +827,16 @@ getBatteryCapacity()
#### iOS平台
uts插件编译需要XCode环境,因此在mac电脑安装了XCode工具时支持直接使用标准基座真机运行。
在windows电脑或者mac电脑没有安装XCode工具时,需要提交云端打包生成自定义基座后才能调用uts插件。
### 5.3 debug断点调试
### debug断点调试
uts插件支持debug断点调试。
- [Android debug教程](/tutorial/debug/uni-uts-debug.md)
- [iOS debug教程](/tutorial/debug/uni-uts-debug-ios.md)
### 5.4 遗留问题
### 遗留问题
截止到HBuilderX 3.6.9 时遗留事项:
- Android平台不支持跨进程调试/日志打印,即 console.log 目前只能在当前进程生效,开发多进程应用时,暂时无法打印日志到控制台
......@@ -841,12 +844,11 @@ uts插件支持debug断点调试。
遗留事项后续升级完善。
## 6 云端打包
## 云端打包
正常支持云端打包。但打包后uts编译为了纯原生二进制代码,不支持wgt热更新。
## 常见问题
### 常见报错
......@@ -880,7 +882,7 @@ let longVal = 1000.0.toLong()
### 异步任务
目前UTS 还不支持使用promise执行异步任务,类似场景可以使用setTimeOut
目前 UTS 仅Android支持promise执行异步任务,iOS还不支持。类似场景可以使用setTimeOut。
### 匿名内部类
......@@ -924,7 +926,7 @@ function connectWifi(option: WifiConnectOption,testName :string = "zhangsan")
### 访问JSON对象属性
`uts`环境中访问`JSON`对象的属性,不能用`user.age` 而要用 `user['age']`
`uts`环境中访问`JSON`对象的属性,不能用`user.age` 而要用下标 `user['age']`
```ts
......@@ -934,12 +936,16 @@ console.log("jsonObj['age'] == " + jsonObj['age'] );
```
如果想使用`.操作符`,需要参考uts的[type](../uts/data-type.md#type)
更多UTSJSONObject的用法,[详见](../uts/data-type.md#UTSJSONObject)
## 路线图
uts是一个宏大工程,产品将分阶段发布。近期将陆续发布:
1. uts插件中可陆续使用uni的各种api,比如uni.request(已上线部分,还在持续补充)
2. 插件市场支持uts插件的加密和计费销售(已完成)
3. 全新uvue页面,纯原生的视图组件构成的页面
3. 全新uvue页面,纯原生的视图组件构成的页面(已公测)
4. vue页面支持uts原生组件
最终,uts不再是uni-app的插件,而是应用的主体。(现在是以js为主,uts作为插件存在,主引擎仍然在v8或jscore里)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册