Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
程序yang
unidocs-zh
提交
f699bf3d
U
unidocs-zh
项目概览
程序yang
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
f699bf3d
编写于
9月 07, 2022
作者:
杜庆泉
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
uts plugin add 3.6.0 libs note
上级
a47b0c87
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
29 addition
and
130 deletion
+29
-130
docs/plugin/UTSForAndroid.md
docs/plugin/UTSForAndroid.md
+0
-130
docs/plugin/uts-plugin.md
docs/plugin/uts-plugin.md
+29
-0
未找到文件。
docs/plugin/UTSForAndroid.md
已删除
100644 → 0
浏览文件 @
a47b0c87
## 1 UTS插件介绍
### 1.1 什么是UTS插件
> UTS原生插件 是用 UTS语言 开发的App原生插件。
> UTS语言编译到Android平台,会转为kotlin;编译到iOS平台,会转为swift。
简单来说,
UTS插件 = 使用HX + typescript 开发插件
取代原有的java + android studio
### 2.1 UTS插件相比Android插件的优势
#### 更高的开发效率
日常在解答插件开发者问题时,经常会遇到开发者提问:"开发过程中,原生插件和uni代码如何调试?"
uni原生插件在这点上做的并不好,如果出现问题,需要频繁切换开发环境。
UTS插件,完美的解决了这个痛点,全链路 HX + JS/TS开发,一站式调试。
#### 更好的通用性
UTS插件天生具备跨平台基因。使用UTS开发插件多个平台的兼容成本远远低于原生开发
#### 较高的运行效率
虽然UTS插件是基于ts/JS语言开发。但是实时会编译成kotlin代码。
最终的apk中也是以.class字节码的形式。
相比原生插件,在插件通信性能会有一定的提升。
## 2 Android上手必备
### 2.1 UTS插件介绍
需要了解UTS插件
[
UTS开发官方文档
](
https://uniapp.dcloud.net.cn/plugin/uts-plugin.html
)
### 2.1 UTS语言部分
需要掌握uts语言
[
UTS语法文档
](
)
### 2.2 Android 知识部分
需要具备基本的Android开发知识
[
Android 开发官方文档
](
https://developer.android.com/
)
## 3 Android常用API
### getAppContext
获取当前应用Application上下文,对应android平台上的application context
```
fun getAppContext():Context?
```
### getUniActivity
获取当前应用宿主activity示例,当前Uni-APP 应用实例的宿主activity
```
ts
fun
getAppContext
():
Context
?
```
### getResourcePath(resourceName:String)
获取指定插件资源 的运行期绝对路径
```
ts
fun
getResourcePath
(
resourceName
:
String
):
String
```
比如,插件A使用到了一张图片,开发期间 存放位置为
> ni_modules/test-uts-static/static/logo.png
程序运行期间,需要获取到此资源,可以使用
```
ts
getResourcePath
(
"
uni_modules/test-uts-static/static/logo.png
"
)
```
得到文件运行时路径:
> /storage/emulated/0/Android/data/io.dcloud.HBuilder/apps/__UNI__3732623/www/uni_modules/test-uts-static/static/logo.png
### onAppActivityPause
容器的宿主activity onPause时触发
### onAppActivityResume
容器的宿主activity onResume时触发
### onAppActivityDestroy
容器的宿主activity onDestroy时触发
### onAppActivityBack
容器的宿主activity 回退物理按键点击时触发
## 4 常见问题
### Float类型传参
android很多布局参数强制要求Float,但是ts中没有内置这种类型。可以使用下面的代码实现转换
```
ts
let
textSize
=
30.0
.
toFloat
();
```
### 泛型参数
android中UI相关的api,很多会要求泛型,目前UTS支持用as关键字强转,满足类似的场景
```
ts
let
frameContent
=
decorView
.
findViewById
(
android
.
R
.
id
.
content
)
as
FrameLayout
```
docs/plugin/uts-plugin.md
浏览文件 @
f699bf3d
...
...
@@ -176,6 +176,12 @@ Android平台原生三方库目录,支持以下类型文件:
如果使用了NDK开发so库,也支持保存到此目录,需按Android的abi类型分目录保存。
**HX 3.6.0版本注意**
+
UTS真机运行功能,暂时不支持仓库依赖,需要将gradle配置手动下载后,放置在libs目录
+
Uni项目内置了一部分依赖(比如androidX),对于这部分依赖,需要与uni内置依赖版本保持一致
+
对于uni没有内置的依赖项目,需要确保不要和config.json里重复配置
##### res
Android平台原生res资源目录,建议只保存UTS插件内置的资源文件。
如果需要插件使用者配置使用自定义资源,则应该在插件使用文档中告诉插件使用者配置到项目的Android原生应用资源目录,
[
详见
](
https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-android
)
...
...
@@ -207,6 +213,7 @@ uts插件在Android平台的原生层配置文件,可以在其中配置依赖
Android平台原生配置需提交云端打包才能生效,真机运行时请使用
[
自定义调试基座
](
https://ask.dcloud.net.cn/article/35115
)
## 3 开发uts原生插件
以Android平台获取电量为例,介绍uts原生插件开发步骤
...
...
@@ -403,6 +410,28 @@ onAppActivityBack(() => {
});
```
### onAppActivityRequestPermissionsResult
容器的宿主activity 获得权限请求结果的回调
```
ts
onAppActivityRequestPermissionsResult
((
requestCode
:
number
,
permissions
:
MutableList
<
string
>
,
grantResults
:
MutableList
<
number
>
)
=>
{
/**
* 0 已同意
* -1 已拒绝
*/
console
.
log
(
grantResults
);
console
.
log
(
permissions
);
console
.
log
(
requestCode
);
});
//发起定位权限申请
ActivityCompat
.
requestPermissions
(
getUniActivity
()
!
,
arrayOf
(
Manifest
.
permission
.
ACCESS_COARSE_LOCATION
),
1001
);
```
## 常见问题
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录