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

Update uts-plugin.md

上级 b5b90c24
......@@ -528,434 +528,6 @@ uts代码暂不支持直接使用标准基座真机运行。与原生插件一
正常支持云端打包。但打包后uts编译为了纯原生二进制代码,不支持wgt热更新。
## uni-app的Android内置库@iodcloudutsandroid
在uts里,Android的所有api都可以访问。
但Android开发中经常要复写application和activity,uni-app主引擎已经复写了相关类。所以想要操作application和activity,需要调用uni-app引擎封装的API。
这些api在`io.dcloud.uts.android`库中,具体见下。
### 1 application 上下文相关
#### 1.1 getAppContext
> HBuilderX 3.6.3+
```ts
import { getAppContext } from "io.dcloud.uts.android";
```
用法说明:获取当前应用Application上下文,对应android平台 Context.getApplicationContext 函数实现
Android开发场景中,调用应用级别的资源/能力,需要使用此上下文。更多用法,参考[Android官方文档](https://developer.android.google.cn/docs)
```ts
// [示例]获取asset下的音频,并且播放
let assetManager = getAppContext()!.getAssets();
let afd = assetManager.openFd("free.mp3");
let mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(), afd.getLength());
mediaPlayer.prepare();
mediaPlayer.start();
```
#### 1.2 getResourcePath(resourceName:String)
> HBuilderX 3.6.3+
```ts
import { getResourcePath } from "io.dcloud.uts.android";
```
获取指定插件资源的运行期绝对路径
```ts
// [示例]获取指定资源路径
// 得到文件运行时路径: `/storage/emulated/0/Android/data/io.dcloud.HBuilder/apps/__UNI__3732623/www/uni_modules/test-uts-static/static/logo.png`
getResourcePath("uni_modules/test-uts-static/static/logo.png")
```
#### 1.3 onAppTrimMemory / offAppTrimMemory
##### onAppTrimMemory
> HBuilderX 3.6.8+
```ts
import { onAppTrimMemory } from "io.dcloud.uts.android";
```
App 内存不足时,系统回调函数 对应原生的API: onTrimMemory
```ts
onAppTrimMemory((level:Number) => {
let eventName = "onAppTrimMemory - " + level;
console.log(eventName);
});
```
##### offAppTrimMemory
> HBuilderX 3.6.9+
```ts
import { offAppTrimMemory } from "io.dcloud.uts.android";
```
onAppTrimMemory 对应的反注册函数
如果传入的函数可为空,如果为空,则视为移除所有监听
```ts
// 移除所有监听
offAppTrimMemory()
// 移除指定监听
offAppTrimMemory((level:Number) => {
});
```
#### 1.4 onAppConfigChange / offAppConfigChange
##### onAppConfigChange
> HBuilderX 3.6.8+
```ts
import { onAppConfigChange } from "io.dcloud.uts.android";
```
App 配置发生变化时触发,比如横竖屏切换 对应原生的API: onConfigurationChanged
```ts
onAppConfigChange((ret:UTSJSONObject) => {
let eventName = "onAppConfigChange - " + JSON.stringify(ret);
console.log(eventName);
});
```
##### offAppConfigChange
> HBuilderX 3.6.9+
```ts
import { offAppConfigChange } from "io.dcloud.uts.android";
```
与onAppConfigChange 对应的反注册函数
如果传入的函数可为空,如果为空,则视为移除所有监听
```ts
// 移除所有监听
offAppConfigChange();
// 移除指定监听
offAppConfigChange(function(ret){
});
```
--------------------------------
特别说明:除了本章节列出的函数外,android环境下 application 其他上下文方法都可以通过 getAppContext()!.xxx()的方式实现
比如获取app缓存目录:
```
getAppContext()!.getExternalCacheDir()!.getPath()
```
### 2 Activity 上下文
#### 2.1 getUniActivity
> HBuilderX 3.6.3+
```ts
import { getUniActivity } from "io.dcloud.uts.android";
```
获取当前插件所属的activity实例,对应android平台 getActivity 函数实现
Android开发场景中,调用活动的级别的资源/能力,需要使用此上下文。更多用法,参考[Android官方文档](https://developer.android.google.cn/docs)
```ts
// [示例]获取当前activity顶层容器
let frameContent = decorView.findViewById<FrameLayout>(android.R.id.content)
```
#### 2.2 onAppActivityPause / offAppActivityPause
##### onAppActivityPause
> HBuilderX 3.6.3+
```ts
import { onAppActivityPause } from "io.dcloud.uts.android";
```
App的activity onPause时触发
```ts
onAppActivityPause(() => {
let eventName = "onAppActivityPause - " + Date.now();
console.log(eventName);
});
```
##### offAppActivityPause
> HBuilderX 3.6.9+
onAppActivityPause 对应的反注册函数
如果传入的函数可为空,如果为空,则视为移除所有监听
```ts
import { offAppActivityPause } from "io.dcloud.uts.android";
```
```ts
// 移除全部监听
offAppActivityPause();
// 移除指定监听
offAppActivityPause(() => {
});
```
#### 2.3 onAppActivityResume / offAppActivityResume
##### onAppActivityResume
> HBuilderX 3.6.3+
```ts
import { onAppActivityResume } from "io.dcloud.uts.android";
```
App的activity onResume时触发
```ts
onAppActivityResume(() => {
let eventName = "onAppActivityResume - " + Date.now();
console.log(eventName);
});
```
##### offAppActivityResume
> HBuilderX 3.6.9+
onAppActivityResume 对应的反注册函数
如果传入的函数可为空,如果为空,则视为移除所有监听
```ts
import { onAppActivityResume } from "io.dcloud.uts.android";
```
```ts
// 移除全部监听
onAppActivityResume();
// 移除指定监听
onAppActivityResume(() => {
});
```
#### 2.4 onAppActivityDestroy / offAppActivityDestroy
##### onAppActivityDestroy
> HBuilderX 3.6.3+
```ts
import { onAppActivityDestroy } from "io.dcloud.uts.android";
```
App 的 activity onDestroy时触发
```ts
onAppActivityDestroy(() => {
let eventName = "onAppActivityDestroy- " + Date.now();
console.log(eventName);
});
```
##### offAppActivityDestroy
> HBuilderX 3.6.9+
onAppActivityDestroy 对应的反注册函数
如果传入的函数可为空,如果为空,则视为移除所有监听
```ts
import { offAppActivityDestroy } from "io.dcloud.uts.android";
```
```ts
// 移除全部监听
offAppActivityDestroy();
// 移除指定监听
offAppActivityDestroy(() => {
});
```
#### 2.5 onAppActivityBack / offAppActivityBack
##### onAppActivityBack
> HBuilderX 3.6.3+
```ts
import { onAppActivityBack } from "io.dcloud.uts.android";
```
App 的 activity 回退物理按键点击时触发
```ts
onAppActivityBack(() => {
let eventName = "onAppActivityBack- " + Date.now();
console.log(eventName);
});
```
##### offAppActivityBack
> HBuilderX 3.6.9+
onAppActivityBack 对应的反注册函数
如果传入的函数可为空,如果为空,则视为移除所有监听
```ts
import { offAppActivityBack } from "io.dcloud.uts.android";
```
```ts
// 移除全部监听
offAppActivityBack();
// 移除指定监听
offAppActivityBack(() => {
});
```
#### 2.6 onAppActivityResult / offAppActivityResult
##### onAppActivityResult
> HBuilderX 3.6.8+
```ts
import { onAppActivityResult } from "io.dcloud.uts.android";
```
App 的 activity 启动其他activity的回调结果监听 对应原生的 onActivityResult
```ts
onAppActivityResult((requestCode: Int, resultCode: Int, data?: Intent) => {
let eventName = "onAppActivityResult - requestCode:" + requestCode + " -resultCode:"+resultCode + " -data:"+JSON.stringify(data);
console.log(eventName);
});
```
##### offAppActivityResult
> HBuilderX 3.6.9+
onAppActivityResult 对应的反注册函数
如果传入的函数可为空,如果为空,则视为移除所有监听
```ts
import { offAppActivityResult } from "io.dcloud.uts.android";
```
```ts
// 移除全部监听
offAppActivityResult();
// 移除指定监听
offAppActivityResult(() => {
});
```
#### 2.7 onAppActivityRequestPermissionsResult / offAppActivityRequestPermissionsResult
##### onAppActivityRequestPermissionsResult
> HBuilderX 3.6.3+
```ts
import { onAppActivityRequestPermissionsResult } from "io.dcloud.uts.android";
```
App 的 activity 获得权限请求结果的回调
```ts
onAppActivityRequestPermissionsResult((requestCode: number,
permissions: MutableList<string>,
grantResults: MutableList<number>) => {
console.log(grantResults);
console.log(permissions);
console.log(requestCode);
});
//发起定位权限申请
ActivityCompat.requestPermissions(getUniActivity()!,
arrayOf(Manifest.permission.ACCESS_COARSE_LOCATION), 1001);
```
##### offAppActivityRequestPermissionsResult
> HBuilderX 3.6.9+
onAppActivityRequestPermissionsResult 对应的反注册函数
如果传入的函数可为空,如果为空,则视为移除所有监听
```ts
import { offAppActivityRequestPermissionsResult } from "io.dcloud.uts.android";
```
```ts
// 移除全部监听
offAppActivityRequestPermissionsResult();
// 移除指定监听
offAppActivityRequestPermissionsResult(() => {
});
-----------------------------
特别说明除了本章节列出的函数外android环境下 activity 其他上下文方法都可以通过 getUniActivity()!.xxx()的方式实现
比如获取当前activity的顶层View容器
```
getUniActivity()!.getWindow().getDecorView();
```
## 常见问题
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册