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

Update uts-for-android.md

上级 7aa51d3f
......@@ -99,26 +99,50 @@ uts语法详细介绍:[uts语法介绍](https://uniapp.dcloud.net.cn/tutorial/
但是当开发者重写 `Android`平台 `Service` 组件`onStartCommand` 方法时,必须明确指定接收参数为 Int,以满足`Android`平台API要求
UTS 实现代码:
在标准的UTS环境中,其实只有`Number`类型而没有`Int`,理想的情况应该是这样写:
```ts
override onStartCommand(intent:Intent ,flags:Number ,startId:Number):Number {
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);
}
```
对应的Kotlin 代码实现:
最后转换成的下面的`Kotlin`代码:
```kotlin
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
return super.onStartCommand(intent, flags, startId);
}
```
举例二:`MutableList`
`MutableList``android`平台 特有的数据类型,一般场景下,可以使用UTS中内置类型 `Array` 替代
但是在`android`平台 响应权限申请结果时,必须要以此为类型
UTS 实现代码:
在标准的UTS环境中,是没有`MutableList`类型的,与之相近的数据类型是 `Array`,所以理想的情况应该是这样写:
```ts
onAppActivityRequestPermissionsResult((requestCode: number,permissions: Array<string>,grantResults: Array<number>) => {
// 权限申请结果
});
```
但是因为 `onAppActivityRequestPermissionsResult`函数是 `android`平台内置的函数,且明确要求了 `permissions``grantResults` 字段必须是 `MutableList` 类型。因此我们需要这样写:
```ts
onAppActivityRequestPermissionsResult((requestCode: number,permissions: MutableList<string>,grantResults: MutableList<number>) => {
......@@ -126,13 +150,15 @@ onAppActivityRequestPermissionsResult((requestCode: number,permissions: MutableL
});
```
对应的Kotlin 代码实现:
编译后的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.
先完成此消息的编辑!
想要评论请 注册