Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-zh
提交
c33b066d
unidocs-zh
项目概览
DCloud
/
unidocs-zh
通知
3215
Star
106
Fork
815
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
94
列表
看板
标记
里程碑
合并请求
70
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
94
Issue
94
列表
看板
标记
里程碑
合并请求
70
合并请求
70
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
c33b066d
编写于
10月 26, 2022
作者:
杜庆泉
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update uts-for-android.md
上级
21ee0165
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
26 addition
and
33 deletion
+26
-33
docs/plugin/uts-for-android.md
docs/plugin/uts-for-android.md
+26
-33
未找到文件。
docs/plugin/uts-for-android.md
浏览文件 @
c33b066d
...
...
@@ -96,55 +96,55 @@ uts语法详细介绍:[uts语法介绍](https://uniapp.dcloud.net.cn/tutorial/
#### 举例一: Int 和Number
默认情况下
`UTS`
开发者可以使用
`Number`
覆盖
`android`
平台上
的 int
场景。
默认情况下
`UTS`
开发者可以使用
`Number`
覆盖
`android`
平台上
使用
`Int`
的
场景。
但是当开发者重写
`Android`
平台
`Service`
组件
`onStartCommand`
方法时,必须明确指定接收参数为 Int,以满足
`Android`
平台API要求
但是当开发者重写
`Service`
组件
`onStartCommand`
方法时,
`Android`
API要求 明确要求后两个参数 必须为Int
原生开发环境中,应该这样写:
在标准的UTS环境中,其实只有
`Number`
类型而没有
`Int`
,理想的情况应该是这样写:
```
ts
override
onStartCommand
(
intent
:
Intent
,
flags
:
Number
,
startId
:
Number
):
Number
{
```
kotlin
override
fun
onStartCommand
(
intent
:
Intent
,
flags
:
Int
,
startId
:
Int
):
Int
{
return
super
.
onStartCommand
(
intent
,
flags
,
startId
);
}
```
```
但是因为
`onStartCommand`
是
`android`
提供的api 并且明确指定数据类型
`flags`
和
`startId`
需要是Int类型,
因此我们需要违背
`UTS`
数据类型,以满足
`android`
平台数据类型的需要:
```
ts
override
onStartCommand
(
intent
:
Intent
,
flags
:
Int
,
startId
:
Int
):
Int
{
return
super
.
onStartCommand
(
intent
,
flags
,
startId
);
}
```
但是标准的UTS环境中,只有
`Number`
类型而没有
`Int`
最后转换成的下面的
`Kotlin`
代码
:
```
kotlin
override
fun
onStartCommand
(
intent
:
Intent
,
flags
:
Int
,
startId
:
Int
):
Int
{
为了适应这种情况,UTS 允许开发者使用原生平台的数据类型Int,来满足平台API对数据类型的明确要求
:
```
ts
override
onStartCommand
(
intent
:
Intent
,
flags
:
Int
,
startId
:
Int
):
Number
{
return
super
.
onStartCommand
(
intent
,
flags
,
startId
);
}
```
```
#### 举例二:`MutableList`
`MutableList`
是
`android`
平台 特有的数据类型,一般场景下,可以使用UTS中内置类型
`Array`
替代
但是在
`android`
平台
响应权限申请结果时,必须要以此为
类型
但是在
`android`
平台
调用 权限申请结果
`onAppActivityRequestPermissionsResult`
函数时,明确要求使用此
类型
在标准的UTS环境中,是没有
`MutableList`
类型的,与之相近的数据类型是
`Array`
,所以理想的情况应该是这样写:
```
ts
onAppActivityRequestPermissionsResult
((
requestCode
:
number
,
permissions
:
Array
<
string
>
,
grantResults
:
Array
<
number
>
)
=>
{
// 权限申请结果
});
在原生环境中,是这样写:
```
kotlin
onAppActivityRequestPermissionsResult
(
fun
(
requestCode
:
Number
,
permissions
:
MutableList
<
String
>,
grantResults
:
MutableList
<
Number
>){
});
```
但是因为
`onAppActivityRequestPermissionsResult`
函数是
`android`
平台内置的函数,且明确要求了
`permissions`
和
`grantResults`
字段必须是
`MutableList`
类型。因此我们需要这样写:
标准的UTS环境中,是没有
`MutableList`
类型的,与之相近的数据类型是
`Array`
为了适应这种情况,UTS 允许开发者使用原生平台的数据类型
`MutableList`
,来满足内置API对数据类型的明确要求:
```
ts
onAppActivityRequestPermissionsResult
((
requestCode
:
number
,
permissions
:
MutableList
<
string
>
,
grantResults
:
MutableList
<
number
>
)
=>
{
...
...
@@ -152,14 +152,7 @@ onAppActivityRequestPermissionsResult((requestCode: number,permissions: MutableL
});
```
编译后的kotlin代码是这样的:
```
kotlin
onAppActivityRequestPermissionsResult
(
fun
(
requestCode
:
Number
,
permissions
:
MutableList
<
String
>,
grantResults
:
MutableList
<
Number
>){
});
```
## 3 Android原生环境配置 (目前版本暂不支持)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录