Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
你丑我先上
unidocs-zh
提交
c33b066d
U
unidocs-zh
项目概览
你丑我先上
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
0
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录