From 065339fe879f01cd41490cb1f173a70f8e6e0070 Mon Sep 17 00:00:00 2001 From: wanganxp Date: Sat, 16 Dec 2023 06:57:23 +0800 Subject: [PATCH] x --- docs/api/README.md | 35 +---- docs/api/choose-image.md | 4 +- docs/api/download-file.md | 14 +- docs/api/ext.md | 36 ++++- docs/api/facial-recognition-verify.md | 3 +- docs/api/file-system-spec.md | 7 +- docs/api/get-univerify-manager.md | 1 + docs/api/unicloud/README.md | 3 +- docs/api/upload-file.md | 2 + docs/collocation/manifest-modules.md | 15 +- docs/collocation/manifest-splashscreen.md | 160 ++++++++++++++++------ docs/dom/element.md | 3 + docs/readme.md | 2 +- 13 files changed, 187 insertions(+), 98 deletions(-) diff --git a/docs/api/README.md b/docs/api/README.md index 1b1bf4f3..68745625 100644 --- a/docs/api/README.md +++ b/docs/api/README.md @@ -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 - - -``` - \ 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 diff --git a/docs/api/choose-image.md b/docs/api/choose-image.md index cd522189..aefafdb5 100644 --- a/docs/api/choose-image.md +++ b/docs/api/choose-image.md @@ -17,4 +17,6 @@ ## 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 diff --git a/docs/api/download-file.md b/docs/api/download-file.md index 47af4953..4e1736d5 100644 --- a/docs/api/download-file.md +++ b/docs/api/download-file.md @@ -2,11 +2,16 @@ +下载文件常见场景是apk的下载更新,[app升级中心](https://doc.dcloud.net.cn/uniCloud/upgrade-center.html)是一个现成的开源项目,实现下载进度在通知栏显示等复杂交互,可直接使用。 + -## 注意事项 +### 注意事项 -* 当目录下有同名文件时,文件名会增加数字后缀,例如:目录下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目录下。 @@ -22,6 +27,5 @@ -## 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 diff --git a/docs/api/ext.md b/docs/api/ext.md index 86b4d168..cc0a799d 100644 --- a/docs/api/ext.md +++ b/docs/api/ext.md @@ -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 + + +``` + \ No newline at end of file diff --git a/docs/api/facial-recognition-verify.md b/docs/api/facial-recognition-verify.md index 9cf9e328..037eec4e 100644 --- a/docs/api/facial-recognition-verify.md +++ b/docs/api/facial-recognition-verify.md @@ -40,4 +40,5 @@ uni-id-pages,已经内置实人认证,从云端到客户端均已开发好 ## 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 diff --git a/docs/api/file-system-spec.md b/docs/api/file-system-spec.md index 2fbc1df1..dd0e2936 100644 --- a/docs/api/file-system-spec.md +++ b/docs/api/file-system-spec.md @@ -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 diff --git a/docs/api/get-univerify-manager.md b/docs/api/get-univerify-manager.md index d2a3cef3..53a45037 100644 --- a/docs/api/get-univerify-manager.md +++ b/docs/api/get-univerify-manager.md @@ -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) +- 一键登陆支持标准基座真机运行,涉及费用扣除开发者的费用。无需自定义基座。 diff --git a/docs/api/unicloud/README.md b/docs/api/unicloud/README.md index 6464c560..a0ef9319 100644 --- a/docs/api/unicloud/README.md +++ b/docs/api/unicloud/README.md @@ -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 diff --git a/docs/api/upload-file.md b/docs/api/upload-file.md index 5b0d9157..d981c917 100644 --- a/docs/api/upload-file.md +++ b/docs/api/upload-file.md @@ -2,6 +2,8 @@ +推荐上传到uniCloud,uniCloud提供了更便宜CDN和更好的易用性,[详见](https://doc.dcloud.net.cn/uniCloud/storage.html) + diff --git a/docs/collocation/manifest-modules.md b/docs/collocation/manifest-modules.md index fe70baab..88e8d551 100644 --- a/docs/collocation/manifest-modules.md +++ b/docs/collocation/manifest-modules.md @@ -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。 diff --git a/docs/collocation/manifest-splashscreen.md b/docs/collocation/manifest-splashscreen.md index 91da3dc1..59d40336 100644 --- a/docs/collocation/manifest-splashscreen.md +++ b/docs/collocation/manifest-splashscreen.md @@ -1,44 +1,90 @@ -## 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)。 + diff --git a/docs/dom/element.md b/docs/dom/element.md index b233ae4a..d8e578f7 100644 --- a/docs/dom/element.md +++ b/docs/dom/element.md @@ -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 diff --git a/docs/readme.md b/docs/readme.md index 502aff9e..1ba926ff 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -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代码。** -- GitLab