Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-zh
提交
f232b9be
unidocs-zh
项目概览
DCloud
/
unidocs-zh
通知
3216
Star
106
Fork
815
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
94
列表
看板
标记
里程碑
合并请求
70
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
94
Issue
94
列表
看板
标记
里程碑
合并请求
70
合并请求
70
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
f232b9be
编写于
11月 14, 2022
作者:
杜庆泉
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update uts-plugin.md
上级
b5b90c24
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
0 addition
and
428 deletion
+0
-428
docs/plugin/uts-plugin.md
docs/plugin/uts-plugin.md
+0
-428
未找到文件。
docs/plugin/uts-plugin.md
浏览文件 @
f232b9be
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录