Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-uni-app-x-zh
提交
065339fe
U
unidocs-uni-app-x-zh
项目概览
DCloud
/
unidocs-uni-app-x-zh
通知
144
Star
2
Fork
33
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
9
列表
看板
标记
里程碑
合并请求
11
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-uni-app-x-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
9
Issue
9
列表
看板
标记
里程碑
合并请求
11
合并请求
11
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
065339fe
编写于
12月 16, 2023
作者:
W
wanganxp
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
x
上级
9e5884e1
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
187 addition
and
98 deletion
+187
-98
docs/api/README.md
docs/api/README.md
+2
-33
docs/api/choose-image.md
docs/api/choose-image.md
+3
-1
docs/api/download-file.md
docs/api/download-file.md
+9
-5
docs/api/ext.md
docs/api/ext.md
+35
-1
docs/api/facial-recognition-verify.md
docs/api/facial-recognition-verify.md
+2
-1
docs/api/file-system-spec.md
docs/api/file-system-spec.md
+4
-3
docs/api/get-univerify-manager.md
docs/api/get-univerify-manager.md
+1
-0
docs/api/unicloud/README.md
docs/api/unicloud/README.md
+1
-2
docs/api/upload-file.md
docs/api/upload-file.md
+2
-0
docs/collocation/manifest-modules.md
docs/collocation/manifest-modules.md
+9
-6
docs/collocation/manifest-splashscreen.md
docs/collocation/manifest-splashscreen.md
+115
-45
docs/dom/element.md
docs/dom/element.md
+3
-0
docs/readme.md
docs/readme.md
+1
-1
未找到文件。
docs/api/README.md
浏览文件 @
065339fe
...
...
@@ -35,41 +35,10 @@ uni-app x项目的uts代码中可以使用很多API。包括:
其实,
[
uni.getSystemInfoSync
](
https://gitcode.net/dcloud/uni-api/-/blob/master/uni_modules/uni-getSystemInfo/utssdk/app-android/index.uts
)
的内部实现就是一个uts模块,底层使用了一样的代码,也是import了android.os.Build。
大多数uni.的api,都是uts开发的,它们
会
陆续开源在
[
uni-api
](
https://gitcode.net/dcloud/uni-api
)
。
大多数uni.的api,都是uts开发的,它们陆续开源在
[
uni-api
](
https://gitcode.net/dcloud/uni-api
)
。
插件市场也有很多做好的uts插件,方便开发者拿来即用。
[
uts插件
](
https://ext.dcloud.net.cn/?cat1=8&type=UpdatedDate
)
虽然上述页面可以直接调用原生能力,但一般原生能力建议封装为
[
uni_modules
](
https://uniapp.dcloud.net.cn/plugin/uni_modules.html
)
形式的
[
uts插件
](
https://uniapp.dcloud.net.cn/plugin/uts-plugin.html
)
。这样方便共享、方便跨平台。
uni-app x 中不再支持plus和weex的API。过于plus api中一些常用的api,在uni-app x中进行了替换增补。
-
plus.runtime.quit =>
[
uni.exit
](
./exit.md
)
-
plus.runtime.install =>
[
uni.installApk
](
./install-apk.md
)
-
plus.runtime.openURL
暂未封装API,但可以直接使用如下代码调用。
```
vue
<
template
>
<view>
<button
@
click=
"openSchema('https://uniapp.dcloud.io/uni-app-x')"
>
使用浏览器打开指定URL
</button>
<button
@
click=
"openSchema('market://details?id=com.tencent.mm')"
>
使用应用商店打开指定App
</button>
</view>
</
template
>
<
script
>
import
Intent
from
'
android.content.Intent
'
;
import
Uri
from
'
android.net.Uri
'
;
export
default
{
data
()
{
return
{}
},
methods
:
{
openSchema
(
url
:
string
)
{
const
context
=
UTSAndroid
.
getUniActivity
()
!
;
const
uri
=
Uri
.
parse
(
url
)
const
intent
=
new
Intent
(
Intent
.
ACTION_VIEW
,
uri
)
intent
.
setData
(
uri
);
context
.
startActivity
(
intent
);
}
}
}
</
script
>
```
\ No newline at end of file
uni-app x 中不再支持plus和weex的API。过于plus api中一些常用的api,一部分在uni-app x中进行了替换增补、一部分提供了uts操作原生的示例代码。
[
详见
](
ext.md
)
\ No newline at end of file
docs/api/choose-image.md
浏览文件 @
065339fe
...
...
@@ -17,4 +17,6 @@
<!-- UTSAPIJSON.general_type.param -->
## Tips
*
获取手机端app是否拥有摄像头权限,请使用API
[
uni.getAppAuthorizeSetting
](
get-app-authorize-setting.md
)
\ No newline at end of file
*
获取手机端app是否拥有摄像头权限,请使用API
[
uni.getAppAuthorizeSetting
](
get-app-authorize-setting.md
)
*
拍照和相册选择会在应用沙盒目录的cache目录产生临时文件,位置
[
详见
](
file-system-spec.md#cache
)
。
*
app端如需主动删除临时文件,使用
[
uni.getFileSystemManager
](
get-file-system-manager.md
)
。
\ No newline at end of file
docs/api/download-file.md
浏览文件 @
065339fe
...
...
@@ -2,11 +2,16 @@
<!-- UTSAPIJSON.downloadFile.description -->
下载文件常见场景是apk的下载更新,
[
app升级中心
](
https://doc.dcloud.net.cn/uniCloud/upgrade-center.html
)
是一个现成的开源项目,实现下载进度在通知栏显示等复杂交互,可直接使用。
<!-- UTSAPIJSON.downloadFile.param -->
## 注意事项
##
#
注意事项
*
当目录下有同名文件时,文件名会增加数字后缀,例如:目录下abc.txt已经存在,此时下载此文件名的文件到此目录时,下载后的文件会命名为abc(1).txt。
*
当目录下有同名文件时,文件名会增加数字后缀,例如:目录下abc.txt已经存在,此时下载此文件名的文件到此目录时,下载后的文件会命名为abc(1).txt。
*
App-Android下载的默认目录为外置应用沙盒目录下的cache目录。如果手机磁盘空间不足,系统清理工具会清理cache目录。
+
如需主动删除下载文件,使用
[
uni.getFileSystemManager
](
get-file-system-manager.md
)
。
+
默认下载路径为外置应用沙盒目录
`uni.env.CACHE_PATH/cache/uni-download`
。但在HBuilderX 3.99前有过几次变更,3.98的目录是
`uni.env.CACHE_PATH/cache/uniDownloads`
,而3.98之前则不在cache目录下。
<!-- UTSAPIJSON.downloadFile.returnValue -->
...
...
@@ -22,6 +27,5 @@
<!-- UTSAPIJSON.general_type.param -->
## Tips
-
3.98以下版本,下载的文件存放在应用沙盒非cache目录,不会自动删除。3.98及以上版本迁移到应用临时目录(Android原生应用沙盒目录下的cache目录),由系统清理管理。
## tips
下载后的文件,如需分享或使用三方应用打开,在Android7上需要使用FileProvider。详见
[
分享
](
https://gitcode.net/dcloud/hello-uni-app-x/-/blob/dev/pages/template/share/share.uvue
)
、
[
使用三方应用打开
](
https://gitcode.net/dcloud/hello-uts/-/blob/dev/uni_modules/uts-nativepage/utssdk/app-android/index.uts
)
\ No newline at end of file
docs/api/ext.md
浏览文件 @
065339fe
...
...
@@ -5,8 +5,42 @@
-
[
拨打电话
](
https://ext.dcloud.net.cn/plugin?id=15235
)
:
`uni.makePhoneCall`
-
[
打开三方应用
](
https://gitcode.net/dcloud/hello-uni-app-x/-/blob/dev/pages/template/schema/schema.uvue
)
:打开浏览器、应用商店、地图并传参。
`plus.openUrl`
-
[
分享
](
https://gitcode.net/dcloud/hello-uni-app-x/-/blob/dev/pages/template/share/share.uvue
)
:
`uni.shareWithSystem`
-
打开文件:
`uni.openDocument`
。
[
hello uts示例
](
](https://gitcode.net/dcloud/hello-uts/-/blob/dev/uni_modules/uts-nativepage/utssdk/app-android/index.uts
)
)、
[
插件市场
](
https://ext.dcloud.net.cn/plugin?id=12731
)
-
打开文件:
`uni.openDocument`
。
[
hello uts示例
](
https://gitcode.net/dcloud/hello-uts/-/blob/dev/uni_modules/uts-nativepage/utssdk/app-android/index.uts
)
、
[
插件市场
](
https://ext.dcloud.net.cn/plugin?id=12731
)
-
[
扫码
](
https://ext.dcloud.net.cn/search?q=%E6%89%AB%E7%A0%81&cat1=8&type=UpdatedDate
)
:
`uni.scanCode`
-
[
文件选择
](
https://ext.dcloud.net.cn/search?q=%E6%96%87%E4%BB%B6%E9%80%89%E6%8B%A9&cat1=8&cat2=81
)
:
`uni.chooseFile`
-
[
蓝牙
](
https://ext.dcloud.net.cn/search?q=%E8%93%9D%E7%89%99&orderBy=Relevance&cat1=8&cat2=81
)
-
[
nfc
](
https://ext.dcloud.net.cn/search?q=nfc&orderBy=Relevance&cat1=8&cat2=81
)
uni-app x 中不再支持plus和weex的API。过于plus api中一些常用的api,在uni-app x中进行了替换增补。
-
plus.runtime.quit =>
[
uni.exit
](
./exit.md
)
-
plus.runtime.install =>
[
uni.installApk
](
./install-apk.md
)
还有一些plus API未封装为 uni 的API,但可以直接使用如下代码调用。
-
plus.runtime.openURL
```
vue
<
template
>
<view>
<button
@
click=
"openSchema('https://uniapp.dcloud.io/uni-app-x')"
>
使用浏览器打开指定URL
</button>
<button
@
click=
"openSchema('market://details?id=com.tencent.mm')"
>
使用应用商店打开指定App
</button>
</view>
</
template
>
<
script
>
import
Intent
from
'
android.content.Intent
'
;
import
Uri
from
'
android.net.Uri
'
;
export
default
{
data
()
{
return
{}
},
methods
:
{
openSchema
(
url
:
string
)
{
const
context
=
UTSAndroid
.
getUniActivity
()
!
;
const
uri
=
Uri
.
parse
(
url
)
const
intent
=
new
Intent
(
Intent
.
ACTION_VIEW
,
uri
)
intent
.
setData
(
uri
);
context
.
startActivity
(
intent
);
}
}
}
</
script
>
```
\ No newline at end of file
docs/api/facial-recognition-verify.md
浏览文件 @
065339fe
...
...
@@ -40,4 +40,5 @@ uni-id-pages,已经内置实人认证,从云端到客户端均已开发好
<!-- UTSAPIJSON.general_type.param -->
## Tips
*
获取手机端app是否拥有摄像头权限,请使用API
[
uni.getAppAuthorizeSetting
](
get-app-authorize-setting.md
)
\ No newline at end of file
*
获取手机端app是否拥有摄像头权限,请使用API
[
uni.getAppAuthorizeSetting
](
get-app-authorize-setting.md
)
*
从HBuilderX 3.99起,标准基座真机运行可直接体验实人认证,涉及费用扣除开发者的费用。无需自定义基座。
\ No newline at end of file
docs/api/file-system-spec.md
浏览文件 @
065339fe
...
...
@@ -6,7 +6,7 @@
const fs = uni.getFileSystemManager()
```
文件主要分两大类
:
文件主要分两大类
,代码包和本地磁盘文件:
-
代码包文件:指 uni-app x 项目目录中添加的文件,比如static目录下的文件。Android发行后存放在assets目录下。只读。
+
assets
+
hybrid
...
...
@@ -160,9 +160,10 @@ App端和小程序提供了用户文件目录,用于开发者在应用运行
该目录无法在手机自带的文件管理器中查看,用户无法修改。除非手机被root。
uni-app x框架的一些内置组件和API会涉及缓存文件,存放到本目录,如:
-
image/video组件的网络图片缓存
-
image/video组件的网络图片
视频
缓存
-
web-view组件的缓存
<!-- - 网络字体缓存? -->
FileSystemManager目前对内置应用沙盒目录为只读。如需写入,需开发uts插件。
### 沙盒外目录
FileSystemManager暂不支持访问沙盒外目录。如有相关需求目前需开发uts插件。
\ No newline at end of file
docs/api/get-univerify-manager.md
浏览文件 @
065339fe
...
...
@@ -197,6 +197,7 @@ uni-id-pages,已经内置一键登陆,从云端到客户端均已开发好
-
运营商对一键登陆给用户呈现的ui有强制要求:必须有运营商的隐私协议和服务条款、不得默认勾选同意、手机号掩码显示、需要用户手动再点按钮获取而不能自动获取。
-
目前一键登陆的UI可自定义性有限。仅支持配置登录页全屏/半屏、登录页背景色、登录按钮文案以及登录页logo。后续会继续扩展自定义性。
-
一键登陆并非100%成功,手机没有sim卡和蜂窝网络未开启是最常见的原因,更多错误见上方的错误码列表。在一键登陆无法使用时,可转为短信验证码登录。在uni-id-pages里已经集成了相关逻辑,无需自己开发。
[
详情
](
https://doc.dcloud.net.cn/uniCloud/uni-id/app-x.html
)
-
一键登陆支持标准基座真机运行,涉及费用扣除开发者的费用。无需自定义基座。
<!-- UTSAPIJSON.getUniverifyManager.example -->
...
...
docs/api/unicloud/README.md
浏览文件 @
065339fe
...
...
@@ -5,14 +5,13 @@
-
暂不支持schema2code
-
暂不支持安全网络
-
暂不支持泛型
-
暂不支持pages.json中的uniIdRouter
-
本文档未列举的API均不支持
**兼容说明**
-
`HBuilderX 3.9+`
支持阿里云,
`3.91+`
支持腾讯云,
`3.98+`
支持支付宝小程序云
-
`HBuilderX 3.91+`
支持clientDB,但不支持getOne和multiSend
-
`HBuilderX 3.99+`
支持pages.json中的uniIdRouter
<!-- UTSUNICLOUDAPIJSON.uniCloud_props.description -->
...
...
docs/api/upload-file.md
浏览文件 @
065339fe
...
...
@@ -2,6 +2,8 @@
<!-- UTSAPIJSON.uploadFile.description -->
推荐上传到uniCloud,uniCloud提供了更便宜CDN和更好的易用性,
[
详见
](
https://doc.dcloud.net.cn/uniCloud/storage.html
)
<!-- UTSAPIJSON.uploadFile.param -->
<!-- UTSAPIJSON.uploadFile.returnValue -->
...
...
docs/collocation/manifest-modules.md
浏览文件 @
065339fe
...
...
@@ -49,13 +49,16 @@ HBuilderX3.93版本起,编译器支持扫描代码,摇树treeShaking,自
再次强调,以上模块不属于ext组件或api,是内置模块。但如果你的代码中没有使用这些组件和api,打正式包或自定义基座时会被摇掉。
## uni-
AD
@uni-ad
## uni-
ad
@uni-ad
> HBuilderX 3.99+ 新增支持 uni-
AD
开屏广告
> HBuilderX 3.99+ 新增支持 uni-
ad
开屏广告
uni-AD 是一个独立模块,使用开屏广告不需要调用任何API,应用启动时会自动拉取并展示开屏广告。由于开屏广告的特殊性,导致 uni-AD 模块无法参与摇树。需要开发者在 manifest.json 中手动配置,并提交云端打包后才能生效
。
[
uni-ad
](
https://uniad.dcloud.net.cn/
)
是DCloud提供的聚合广告服务
。
使用 uni-AD 模块需在 manifest.json 文件中添加如下配置:
在uni-app x客户端,uni-ad是一个独立模块。使用开屏广告不需要调用任何API,应用启动时会自动拉取并展示开屏广告。这也导致 uni-ad 模块无法参与摇树。
需要开发者在 manifest.json 中手动配置,并提交云端打包后才能生效。
使用 uni-ad 模块需在 manifest.json 文件中添加如下配置:
1.
在 app -> distribute -> modules 下添加 uni-ad 节点:
```
json
...
...
@@ -81,11 +84,11 @@ uni-AD 是一个独立模块,使用开屏广告不需要调用任何API,应
添加相应的节点,云端打包就会将对应的广告平台 SDK 打包到最终安装包中。
2.
在 app 节点下添加 adid 字段配置 uni-
AD
联盟ID:
2.
在 app 节点下添加 adid 字段配置 uni-
ad
联盟ID:
```
json
"app"
:{
"adid"
:
"1111111111"
}
```
注意:请前往
[
uni-
AD广告联盟
](
https://uniad.dcloud.net.cn/
)
开通 uni-AD
,开通后登录首页可查看到联盟ID。
注意:请前往
[
uni-
ad广告联盟
](
https://uniad.dcloud.net.cn/
)
开通 uni-ad
,开通后登录首页可查看到联盟ID。
docs/collocation/manifest-splashscreen.md
浏览文件 @
065339fe
## splash启动封面
图
## splash启动封面
> HBuilderX 3.99+
App启动时,系统加载应用渲染首页需要一定的时间,为了避免用户等待,手机操作系统提供了特殊的启动界面设计,让用户先看到一个简单的界面,等应用加载完成后正式进入应用首页。
这个界面,即被称为启动
界面,也成称为 splash 或 lauch screen
。
这个界面,即被称为启动
封面,也成称为 splash
。
当然并非所有App都需要splash,很多系统应用比如计算器、日历都没有splash。
uni-app x中,如不配置splash,则与计算器等应用一致,启动时有轻微闪白,但可以让用户更快的使用首页。
如需配置splash,注意避免splash图与首页风格差异太大。因为uni-app x启动速度非常快,splash只是一闪而过,如果颜色差异太大,会让用户视觉不舒服。
如需配置splash,注意避免splash图与首页风格差异太大。因为uni-app x启动速度非常快,splash只是一闪而过,如果颜色差异太大,会让用户视觉不舒服。
uni-app x的Android版,启动封面有3种策略:
-
不配置
-
启动图片
-
Google SplashScreen
###
Android平台启动界面
配置
###
启动图
配置
打开项目的manifest.json文件
,在“App启动界面配置”中的“Android启动界面设置”项下配置各设备分辨率启动图:
项目的manifest.json文件中
,在“App启动界面配置”中的“Android启动界面设置”项下配置各设备分辨率启动图:
![](
../static/splash_screen_android_1.png
)
推荐使用.9.png来适配不同分辨率。
#### .9.png图@9png
manifest虽然可以定义3种标准分辨率的启动图配置,而实际上存在很多不同分辨率的手机,导致启动图在一些不常见的设备会进行拉伸或压缩引起变形。
为了解决此问题,Google推出了可以适配各种尺寸的一种图片格式“.9.png”。它可以指定特定的区域进行拉伸而不失真。
**使用.9.png的优点**
1.
避免在非标准分辨率手机上缩放变形
2.
可以只配置1张或多张图片适配更多分辨率,减少apk的体积(推荐至少配置1080P高分屏启动图片)
**.9.png图片和普通png图片的差异**
1.
.9.png图片和一般图片的区别在于.9.png图片有四条黑边,而一般的图片没有,这四条黑边就是用来拉伸和指定显示位置的
2.
使用.9.png图片后,整个图片应该是包裹着你想要显示的内容的,而没有使用的话整个图片将会被拉伸
**制作.9.png图片**
1.
在Android sdk目录下的tools目录下,有一个叫做draw9patch.bat的文件,双击打开就可以使用(最新android SDK该文件已经不存在,若电脑没有安装android studio,可下载附件工具编辑.9.png图片)
2.
使用android studio,因为android studio已经集成.9.png制作工具,只需选中需要生成的png文件,然后右键,点击create 9-patch file 选项
#### Android 12 应用启动界面适配
详细制作步骤可参考链接:
[
Android中.9图片的含义及制作教程
](
https://www.jianshu.com/p/3fd048644e3f?tdsourcetag=s_pctim_aiomsg
)
Android 12(API 31)开始强制开启
[
SplashScreen
](
https://developer.android.google.cn/guide/topics/ui/splash-screen?hl=zh-cn
)
启动界面,启动界面支持自定义,可自定义背景颜色、logo图标、品牌图标,不配置自定义启动界面,在Android 12及以上系统版本默认只会显示白色背景+应用图标,不会显示配置的splash启动图。
可以使用在线.9.png生成工具:
[
http://inloop.github.io/shadow4android/
](
http://inloop.github.io/shadow4android/
)
**.9.png配置使用**
打开项目的manifest.json文件,在“App启动界面配置”中的“Android启动界面设置”项下,在各分辨率启动图设置框选择需要使用的.9.png图片(图片尺寸请按照提示尺寸对应上传),保存后提交云端打包即可。
> 不同尺寸的启动图是为了适配不同分辨率的手机,所以提交打包时请务必上传不同尺寸的启动图,切忌上传多张同尺寸启动图
可以参考开发者在
[
插件市场
](
https://ext.dcloud.net.cn/search?q=.9
)
做好的.9样例工程
### Google SplashScreen配置
Android 12(API 31)开始强制开启
[
SplashScreen
](
https://developer.android.google.cn/guide/topics/ui/splash-screen?hl=zh-cn
)
。
这个启动界面不是静态图片,而是自定义启动封面的背景颜色、居中logo图标、底部品牌图标。
如果不配置SplashScreen,在Android 12及以上系统的官方Rom和部分三方Rom上,默认会显示白色背景+居中的应用图标,不会显示配置的splash启动图。
但大部分国产Rom默认关闭了这个效果。所以这是一个非常碎片化的问题,在不同的Android版本、不同的Rom上有差异。
海外手机大多支持SplashScreen,而国内手机大多不支持。
在支持的Rom上表现形式如下图,启动后会看到下面的界面,然后直接进入应用主页。
![](
../static/splash_screen_android_example.png
)
打开项目的manifest.json文件,在“App启动界面配置”中的“Android12启动界面设置”项下配置背景颜色及各设备分辨率的居中logo图标、底部品牌图标。
项目的manifest.json文件中,在“App启动界面配置”中的“Google SplashScreen配置”项下,可以配置背景颜色及各设备分辨率的居中logo图标、底部品牌图标。
####
#
配置启动界面背景颜色:
#### 配置启动界面背景颜色:
可选配置,默认白色
![](
../static/splash_screen_android_2.png
)
####
#
配置启动界面中部logo图标:
#### 配置启动界面中部logo图标:
可选配置,默认应用启动图标
![](
../static/splash_screen_android_3.png
)
####
#
配置启动界面底部品牌图标:
#### 配置启动界面底部品牌图标:
可选配置,默认底部不显示品牌图标
...
...
@@ -49,18 +95,49 @@ Android 12(API 31)开始强制开启 [SplashScreen](https://developer.androi
+
Android启动图设置需提交云端打包后才能生效
+
配置Android 12应用启动界面后仅影响Android 12及以上版本应用启动界面,Android 12以下版本依然使用启动图展示splash
+
Android 12启动界面中部logo图标在部分系统设备会被裁剪成圆形,部分设备不会裁剪,需要注意圆形logo适配
+
部分国内 Android 12及以上版本设备不会强制开启 SplashScreen 启动界面,仅配置splash启动图也可展示,但考虑兼容性建议配置Android 12启动界面设置
### 不同Splash方式的选择参考@select
Splash是因为主界面渲染慢,给用户一个等待过渡。但注意复杂的Splash,也一样会影响启动速度。
1.
如不需要splash
不配置启动图,在SplashScreen中配置一个小的白色Logo图。
这样在所有Rom中启动都不会有splash效果。
如果不在SplashScreen配置白色小图,那么在支持SplashScreen的Rom上,启动会在中间渲染App的icon图标。当然这样一个小图也不会占用太多渲染资源。
2.
如需要splash
那么首先需要配置启动图,确保不支持SplashScreen的手机上显示这个启动图。
然后Google SplashScreen配置中配置背景色、居中图标和底图,在支持SplashScreen的手机上,启动封面会变成这个效果。
3.
如只配启动图会怎么样?
在不支持SplashScreen的手机上,会显示启动图;在支持SplashScreen的手机上,不会显示启动图,而是会显示白底背景+居中应用图标。
4.
如只配置SplashScreen会怎么样?
在支持SplashScreen的手机上会显示您的配置。在不支持SplashScreen的手机上会闪白,相当于没有Splash效果。
5.
为什么不能像uni-app js引擎版那样提供一个转圈logo的默认Splash来简化这个事情?
uni-app js引擎版的Android App启动时那个默认的logo转圈效果,其实不是splash,是应用启动后原生view绘制的一个动画。所以点击桌面应用图标后界面不会立即有反应。这个设计影响启动速度,在uni-app x上被废弃了。
###
# Android平台splash关闭时机
###
Android平台splash关闭时机@close
splash
关闭时机可控制,打开项目的manifest.json文件,选择源码视图,在app->splashScreen节点下设置autoClose值域,控制splash关闭时机,默认onShow
splash
默认是在首页onShow时关闭。但可配置,打开项目的manifest.json文件,选择源码视图,在app->splashScreen节点下设置autoClose值域,控制splash关闭时机,默认onShow。
**autoClose取值范围:**
|值域
|说明
|
|--
|--
|
|onShow
|首页页面生命周期触发onShow时关闭splash
|
|值域
|说明
|
|--
|--
|
|onShow
|首页页面生命周期触发onShow时关闭splash
|
|onReady|首页页面生命周期触发onReady时关闭splash|
onReady触发时机要比onShow晚一些。
暂不支持其他方式关闭splash。
...
...
@@ -74,33 +151,26 @@ splash关闭时机可控制,打开项目的manifest.json文件,选择源码
}
```
#### Android平台splash注意事项
**注意**
1.
splash关闭时机中描述的
`首页`
,指的是第一个真正显示的页面,如项目中pages.json第一个页面A在onLoad生命周期被关闭重新跳转了一个新页面B并显示,则B页面就是
`首页`
,原因是显示的是页面B,A页面并未显示,
如果是在页面A的onShow或更晚的生命周期关闭在跳转或直接跳转,则页面A是
`首页`
,因为页面A已经显示符合第一个真正显示的页面。
2.
应用冷启动与温启动的splash展示时间是有区别的。应用冷启动指首次启动或被kill掉进程后的启动,冷启动时初始化环境,数据加载等会占用一些启动时间,所以splash展示时间长一些。温启动指应用已启动后未kill进程再次的启动,由于不会再初始化环境,加载数据等操作,所以相对启动时间较少,splash展示时间也会缩短。如果希望避免出现温启动出现短暂展示splash的情况,可以将退出应用调整为将应用切换到后台,详情参考
[
切换应用到后台
](
../api/exit.md#back
)
。
#### Android平台使用.9.png启动图@9png
目前HBuilderX中仅定义几种标准分辨率的启动图配置,而实际上存在很多不同分辨率的手机,导致启动图在一些不常见的设备会进行拉伸或压缩引起变形,Android平台为了解决此问题就出现了可以适配各种尺寸的一种图片格式“.9.png”。这是一种特殊的图片格式,它可以指定特定的区域进行拉伸而不失真。
**使用.9.png的优点**
1.
避免在非标准分辨率手机上缩放变形
2.
可以只配置1张或多张图片适配更多分辨率,减少apk的体积(推荐至少配置1080P高分屏启动图片)
**.9.png图片和普通png图片的差异**
1.
.9.png图片和一般图片的区别在于.9.png图片有四条黑边,而一般的图片没有,这四条黑边就是用来拉伸和指定显示位置的
2.
使用.9.png图片后,整个图片应该是包裹着你想要显示的内容的,而没有使用的话整个图片将会被拉伸
-
splash关闭时机中描述的
`首页`
,指的是第一个真正显示的页面,如项目中pages.json第一个页面A在onLoad生命周期被关闭重新跳转了一个新页面B并显示,则B页面就是
`首页`
,原因是显示的是页面B,A页面并未显示,
如果是在页面A的onShow或更晚的生命周期关闭在跳转或直接跳转,则页面A是
`首页`
,因为页面A已经显示符合第一个真正显示的页面。
-
splash关闭后才显示开屏广告
**制作.9.png图片**
1.
在Android sdk目录下的tools目录下,有一个叫做draw9patch.bat的文件,双击打开就可以使用(最新android SDK该文件已经不存在,若电脑没有安装android studio,可下载附件工具编辑.9.png图片)
2.
使用android studio,因为android studio已经集成.9.png制作工具,只需选中需要生成的png文件,然后右键,点击create 9-patch file 选项
详细制作步骤可参考链接:
[
Android中.9图片的含义及制作教程
](
https://www.jianshu.com/p/3fd048644e3f?tdsourcetag=s_pctim_aiomsg
)
可以使用在线.9.png生成工具:
[
http://inloop.github.io/shadow4android/
](
http://inloop.github.io/shadow4android/
)
**.9.png配置使用**
打开项目的manifest.json文件,在“App启动界面配置”中的“Android启动界面设置”项下,在各分辨率启动图设置框选择需要使用的.9.png图片(图片尺寸请按照提示尺寸对应上传),保存后提交云端打包即可。
> 不同尺寸的启动图是为了适配不同分辨率的手机,所以提交打包时请务必上传不同尺寸的启动图,切忌上传多张同尺寸启动图
可以参考开发者在
[
插件市场
](
https://ext.dcloud.net.cn/search?q=.9
)
做好的.9样例工程
### 不同启动方式对splash的影响@starttype
应用的启动有冷启动、温启动、切换到前台,这三种方式splash展示时间是有区别的。
1.
应用冷启动
指首次启动或被kill掉进程后的启动,冷启动时初始化环境,数据加载等会占用一些启动时间,所以splash展示时间长一些。
2.
切换至前台
应用未被关闭,再次启动只是激活到前台,此时不显示splash。
3.
温启动
指应用的activity退出但进程仍未被手机系统回收。此时启动,由于不会再初始化环境,加载数据等操作,所以相对启动时间较少,splash展示时间也会缩短。
由于uni-app x默认在app.uvue里使用了uni.exit,这种退出方式只关闭了activity,没有关闭应用进程。如果rom没有回收掉App进程时再启动该App,就会触发温启动。此时splash会一闪而过。
当然App如何退出是开发者自己定义的。很多Android App直接单击back隐藏在后台,不弹toast询问用户是否退出。此时也可以避免温启动的splash快闪。这种方式的开发详见
[
切换应用到后台
](
../api/exit.md#back
)
。
docs/dom/element.md
浏览文件 @
065339fe
...
...
@@ -266,3 +266,6 @@ view.takeSnapshot({
```
完整示例代码参考
[
hello uni-app x
](
https://gitcode.net/dcloud/hello-uni-app-x/-/blob/alpha/pages/API/element-takesnapshot/element-takesnapshot.uvue
)
*
截图会在应用沙盒目录的cache目录产生临时文件,位置
[
详见
](
file-system-spec.md#cache
)
。
*
app端如需主动删除临时文件,使用
[
uni.getFileSystemManager
](
get-file-system-manager.md
)
。
\ No newline at end of file
docs/readme.md
浏览文件 @
065339fe
...
...
@@ -207,7 +207,7 @@ uvue组件、uts sdk、uni-app x前端页面/项目模板。这些前端代码
一般情况下,原生库的能力是大于js库的。不太可能有一个功能必须使用js库才能使用。比如md5,js有库,原生也有库,调用一个jar也很方便。
实际上,常见的
加密、md5等库,插件市场已经有uts版本。
[
详见
](
https://ext.dcloud.net.cn/search?q=%E5%8A%A0%E5%AF%86&orderBy=Relevance&cat1=8&cat2=81
)
实际上,常见的
[
加密、md5
](
[详见](https://ext.dcloud.net.cn/search?q=%E5%8A%A0%E5%AF%86&orderBy=Relevance&cat1=8&cat2=81
)
)、
[
dayjs
](
https://ext.dcloud.net.cn/search?q=dayjs&orderBy=Relevance&cat1=8&cat2=81
)
等库,插件市场已经有uts版本。
**如果你一定要使用某个js库,还有一个办法是在uni-app x里的web-view组件,让其运行js并返回值给uts代码。**
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录