diff --git a/docs/plugin/UTSForAndroid.md b/docs/plugin/UTSForAndroid.md deleted file mode 100644 index d2a2efad659cabd65641654c5e37fd05a9b72d4c..0000000000000000000000000000000000000000 --- a/docs/plugin/UTSForAndroid.md +++ /dev/null @@ -1,130 +0,0 @@ -## 1 UTS插件介绍 - -### 1.1 什么是UTS插件 - -> UTS原生插件 是用 UTS语言 开发的App原生插件。 - -> 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 知识部分 - -需要具备基本的Android开发知识 [Android 开发官方文档](https://developer.android.com/) - - -## 3 Android常用API - - -### getAppContext - -获取当前应用Application上下文,对应android平台上的application context -``` -fun getAppContext():Context? -``` - -### getUniActivity - -获取当前应用宿主activity示例,当前Uni-APP 应用实例的宿主activity -```ts -fun getAppContext():Context? -``` - -### getResourcePath(resourceName:String) - -获取指定插件资源 的运行期绝对路径 -```ts -fun getResourcePath(resourceName:String):String -``` - -比如,插件A使用到了一张图片,开发期间 存放位置为 -> ni_modules/test-uts-static/static/logo.png - -程序运行期间,需要获取到此资源,可以使用 - -```ts -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 回退物理按键点击时触发 - - -## 4 常见问题 - - -### Float类型传参 - -android很多布局参数强制要求Float,但是ts中没有内置这种类型。可以使用下面的代码实现转换 - -```ts -let textSize = 30.0.toFloat(); -``` - -### 泛型参数 - -android中UI相关的api,很多会要求泛型,目前UTS支持用as关键字强转,满足类似的场景 - -```ts -let frameContent = decorView.findViewById(android.R.id.content) as FrameLayout -``` - diff --git a/docs/plugin/uts-plugin.md b/docs/plugin/uts-plugin.md index e371a64aebbf924295582631231c6f86da248034..7fff996f6b9c12ec48cd71d1de30a4793e32045e 100644 --- a/docs/plugin/uts-plugin.md +++ b/docs/plugin/uts-plugin.md @@ -176,6 +176,12 @@ Android平台原生三方库目录,支持以下类型文件: 如果使用了NDK开发so库,也支持保存到此目录,需按Android的abi类型分目录保存。 +**HX 3.6.0版本注意** + ++ UTS真机运行功能,暂时不支持仓库依赖,需要将gradle配置手动下载后,放置在libs目录 ++ Uni项目内置了一部分依赖(比如androidX),对于这部分依赖,需要与uni内置依赖版本保持一致 ++ 对于uni没有内置的依赖项目,需要确保不要和config.json里重复配置 + ##### res Android平台原生res资源目录,建议只保存UTS插件内置的资源文件。 如果需要插件使用者配置使用自定义资源,则应该在插件使用文档中告诉插件使用者配置到项目的Android原生应用资源目录,[详见](https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-android) @@ -207,6 +213,7 @@ uts插件在Android平台的原生层配置文件,可以在其中配置依赖 Android平台原生配置需提交云端打包才能生效,真机运行时请使用[自定义调试基座](https://ask.dcloud.net.cn/article/35115) + ## 3 开发uts原生插件 以Android平台获取电量为例,介绍uts原生插件开发步骤 @@ -403,6 +410,28 @@ onAppActivityBack(() => { }); ``` +### onAppActivityRequestPermissionsResult +容器的宿主activity 获得权限请求结果的回调 + +```ts +onAppActivityRequestPermissionsResult((requestCode: number, + permissions: MutableList, + grantResults: MutableList) => { + /** + * 0 已同意 + * -1 已拒绝 + */ + console.log(grantResults); + console.log(permissions); + console.log(requestCode); + }); + +//发起定位权限申请 +ActivityCompat.requestPermissions(getUniActivity()!, + arrayOf(Manifest.permission.ACCESS_COARSE_LOCATION), 1001); + +``` + ## 常见问题