Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-zh
提交
f699bf3d
unidocs-zh
项目概览
DCloud
/
unidocs-zh
通知
3172
Star
105
Fork
804
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
93
列表
看板
标记
里程碑
合并请求
67
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
93
Issue
93
列表
看板
标记
里程碑
合并请求
67
合并请求
67
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平台原生三方库目录,支持以下类型文件:
...
@@ -176,6 +176,12 @@ Android平台原生三方库目录,支持以下类型文件:
如果使用了NDK开发so库,也支持保存到此目录,需按Android的abi类型分目录保存。
如果使用了NDK开发so库,也支持保存到此目录,需按Android的abi类型分目录保存。
**HX 3.6.0版本注意**
+
UTS真机运行功能,暂时不支持仓库依赖,需要将gradle配置手动下载后,放置在libs目录
+
Uni项目内置了一部分依赖(比如androidX),对于这部分依赖,需要与uni内置依赖版本保持一致
+
对于uni没有内置的依赖项目,需要确保不要和config.json里重复配置
##### res
##### res
Android平台原生res资源目录,建议只保存UTS插件内置的资源文件。
Android平台原生res资源目录,建议只保存UTS插件内置的资源文件。
如果需要插件使用者配置使用自定义资源,则应该在插件使用文档中告诉插件使用者配置到项目的Android原生应用资源目录,
[
详见
](
https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-android
)
如果需要插件使用者配置使用自定义资源,则应该在插件使用文档中告诉插件使用者配置到项目的Android原生应用资源目录,
[
详见
](
https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-android
)
...
@@ -207,6 +213,7 @@ uts插件在Android平台的原生层配置文件,可以在其中配置依赖
...
@@ -207,6 +213,7 @@ uts插件在Android平台的原生层配置文件,可以在其中配置依赖
Android平台原生配置需提交云端打包才能生效,真机运行时请使用
[
自定义调试基座
](
https://ask.dcloud.net.cn/article/35115
)
Android平台原生配置需提交云端打包才能生效,真机运行时请使用
[
自定义调试基座
](
https://ask.dcloud.net.cn/article/35115
)
## 3 开发uts原生插件
## 3 开发uts原生插件
以Android平台获取电量为例,介绍uts原生插件开发步骤
以Android平台获取电量为例,介绍uts原生插件开发步骤
...
@@ -403,6 +410,28 @@ onAppActivityBack(() => {
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录