提交 87015788 编写于 作者: 杜庆泉's avatar 杜庆泉

add uts plugin doc

上级 a098d487
## 1 UTS原生插件介绍
### 1.1 什么是uts原生插件
UTS原生插件 是用UTS作为插件开发语言的一种新型插件形式。
![uts插件结构](https://native-res.dcloud.net.cn/images/uts/UTS%E7%BB%93%E6%9E%84%E7%A4%BA%E6%84%8F%E5%9B%BE1.png)
### 1.2 uts原生插件与uni原生插件的区别
|-|传统原生插件|uts原生插件|
|-|-------|--------|
|开发语言|java/oc|uts|
|开发环境|Android studio/XCode|HBuilderX|
|打包方式|外挂aar 等产出物|编译时生成原生代码|
优点:
1 减少原生环境搭建环节,降低插件开发难度
2 进一步降低平台差异,一种语言开发两个平台插件
3 编译时生成原生代码,提高代码执行效率
## 2 创建UTS插件
### 2.1 UTS插件目录结构
首先确保项目根目录存在uni_modules文件夹 [关于uni_modules的详细说明](https://uniapp.dcloud.net.cn/plugin/uni_modules.html#%E4%BB%80%E4%B9%88%E6%98%AF-uni-modules)
如果不存在,需要手动创建一个。
![插件目录](https://native-res.dcloud.net.cn/images/uts/uni_modules.jpg)
### 2.2 新建步骤拆解
选中`uni_modules`目录 -- 右键 -- 新建插件
![新建插件1](https://native-res.dcloud.net.cn/images/uts/new_uts_plugin.jpg)
选择 **UTS原生插件**
![新建插件2](https://native-res.dcloud.net.cn/images/uts/new_uts_plugin2.jpg)
UTS插件目录结构
![新建插件3](https://native-res.dcloud.net.cn/images/uts/new_uts_plugin3.jpg)
### 2.3 清单文件package.json
package.json为插件的清单文件,这里集成了整个UTS插件的配置信息,下面是一个完整的示例
```
{
"id": "uts-helloworld",
"displayName": "UTS插件示例",
"version": "0.1",
"description": "UTS插件示例",
"uni_modules": {
"type": "uts",
"uts": {
"android": {
"libs": [
"xxx.aar"
],
"dependencies": [{
"id": "com.xxx.richtext:richtext",
"source": "implementation 'com.xxx.richtext:richtext:3.0.7'"
}],
"minSdkVersion": 21
},
"ios": {
"libs": [
"xxx.a"
]
},
"dependencies": [
"xxx.uts"
]
}
}
}
```
## 3 开发UTS原生插件
以android平台获取电量为例,介绍UTS原生插件开发步骤
![OSAPI示例](https://native-res.dcloud.net.cn/images/uts/uts_osapi_demo.jpg)
在android平台目录下,编辑index.uts,键入以下内容
```
// index.uts
// 引用android api
import Context from "android.content.Context";
import BatteryManager from "android.os.BatteryManager";
// 引用uts环境 api
import { getAppContext } from "io.dcloud.uts.android";
export function getBatteryCapacity(): string {
// 获取android系统 application上下文
const context = getAppContext();
if (context != null) {
const manager = context.getSystemService(
Context.BATTERY_SERVICE
) as BatteryManager;
const currentLevel: number = manager.getIntProperty(
BatteryManager.BATTERY_PROPERTY_CAPACITY
);
return '' + currentLevel + '%';
}
return "0%";
}
```
关于android开发UTS插件的更多细节说明,参考文档[todo]
至此,我们已经完成一个android平台上获取电量的原生能力封装。
我们可以像使用普通js函数一样,使用getBatteryCapacity函数来获取设备电量
## 4 使用插件
### 4.1 引用UTS插件
下面介绍两种常见的引入方式
1 显性引用
```
//引用
import {
getBatteryCapacity,
} from "../../../uni_modules/uts-helloworld";
// 使用代码
getBatteryCapacity()
```
2 泛型引用
```
// 引用
import * as UTSHello from "../../../uni_modules/uts-helloworld";
// 使用代码
UTSHello.getBatteryCapacity()
```
### 4.2 使用UTS插件
与普通的js函数无使用差异.
更多的使用示例,可以参考HelloUTS中入门章节
```
var capacity = getBatteryCapacity()
uni.showToast({
title:"当前电量:"+capacity,
icon:'none'
});
```
## 5 测试
### 5.1 真机运行
UTS原生插件与原来的插件调试没有差异,可以直接运行测试。
需要注意的是,如果是涉及自定义信息,需要选择自定义基座运行
### 5.2 云端打包
### 5.3 示例项目
完整的示例项目地址:
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册