提交 065339fe 编写于 作者: W wanganxp

x

上级 9e5884e1
......@@ -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
......@@ -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
......@@ -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
......@@ -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
......@@ -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
......@@ -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
......@@ -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 -->
......
......@@ -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 -->
......
......@@ -2,6 +2,8 @@
<!-- UTSAPIJSON.uploadFile.description -->
推荐上传到uniCloud,uniCloud提供了更便宜CDN和更好的易用性,[详见](https://doc.dcloud.net.cn/uniCloud/storage.html)
<!-- UTSAPIJSON.uploadFile.param -->
<!-- UTSAPIJSON.uploadFile.returnValue -->
......
......@@ -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。
## 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)
......@@ -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
......@@ -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.
先完成此消息的编辑!
想要评论请 注册