Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
程序yang
unidocs-zh
提交
f232b9be
U
unidocs-zh
项目概览
程序yang
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录