From dc77241adbc528fa8f82bb761bedaa34396227d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=9C=E5=BA=86=E6=B3=89?= Date: Wed, 26 Oct 2022 11:07:44 +0800 Subject: [PATCH] Update uts-for-android.md --- docs/plugin/uts-for-android.md | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/docs/plugin/uts-for-android.md b/docs/plugin/uts-for-android.md index f80332ccb..345241ce7 100644 --- a/docs/plugin/uts-for-android.md +++ b/docs/plugin/uts-for-android.md @@ -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,grantResults: Array) => { + // 权限申请结果 +}); + +``` + +但是因为 `onAppActivityRequestPermissionsResult`函数是 `android`平台内置的函数,且明确要求了 `permissions`和`grantResults` 字段必须是 `MutableList` 类型。因此我们需要这样写: ```ts onAppActivityRequestPermissionsResult((requestCode: number,permissions: MutableList,grantResults: MutableList) => { @@ -126,13 +150,15 @@ onAppActivityRequestPermissionsResult((requestCode: number,permissions: MutableL }); ``` -对应的Kotlin 代码实现: +编译后的kotlin代码是这样的: + ```kotlin onAppActivityRequestPermissionsResult(fun(requestCode: Number, permissions: MutableList, grantResults: MutableList){ }); ``` + ## 3 Android原生环境配置 (目前版本暂不支持) -- GitLab