UTSForAndroid.md 3.1 KB
Newer Older
打打卡夫卡's avatar
打打卡夫卡 已提交
1 2 3 4 5
## 1 UTS插件介绍

### 1.1 什么是UTS插件

> UTS原生插件 是用 UTS语言 开发的App原生插件。
6

打打卡夫卡's avatar
打打卡夫卡 已提交
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
> 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 知识部分

54
需要具备基本的Android开发知识 [Android 开发官方文档](https://developer.android.com/)
打打卡夫卡's avatar
打打卡夫卡 已提交
55 56 57 58 59


## 3 Android常用API


60 61 62 63 64 65 66 67 68 69
### getAppContext

获取当前应用Application上下文,对应android平台上的application context
```
fun getAppContext():Context?
```

### getUniActivity

获取当前应用宿主activity示例,当前Uni-APP 应用实例的宿主activity
D
DCloud_LXH 已提交
70
```ts
71 72 73 74 75 76
fun getAppContext():Context?
```

### getResourcePath(resourceName:String)

获取指定插件资源 的运行期绝对路径
D
DCloud_LXH 已提交
77
```ts
78 79 80 81 82 83 84 85
fun getResourcePath(resourceName:String):String
```

比如,插件A使用到了一张图片,开发期间 存放位置为
> ni_modules/test-uts-static/static/logo.png

程序运行期间,需要获取到此资源,可以使用 
 
D
DCloud_LXH 已提交
86
```ts
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
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 回退物理按键点击时触发


112 113 114 115 116 117 118
## 4 常见问题


### Float类型传参

android很多布局参数强制要求Float,但是ts中没有内置这种类型。可以使用下面的代码实现转换

D
DCloud_LXH 已提交
119
```ts
120
let textSize =  30.0.toFloat();
121 122 123 124
```

### 泛型参数

125
android中UI相关的api,很多会要求泛型,目前UTS支持用as关键字强转,满足类似的场景
126

D
DCloud_LXH 已提交
127
```ts
128
let frameContent = decorView.findViewById(android.R.id.content) as FrameLayout
129 130
```