@@ -41,16 +41,16 @@ Options:
4141├── package.json # Node.js manifest
4242├── dist # 打包目录
4343├── project.config.json # 小程序项目配置
44- ├ ── src # 源码目录
45- │ ├── app.config.js # 全局配置
46- │ ├── app.css # 全局 CSS
47- │ ├── app.js # 入口组件
48- │ ├── index.html # H5 入口 HTML
49- │ └── pages # 页面组件
50- │ └── index
51- │ ├── index.config.js # 页面配置
52- │ ├── index.css # 页面 CSS
53- │ └── index.jsx # 页面组件,如果是 Vue 项目,此文件为 index.vue
44+ └ ── src # 源码目录
45+ ├── app.config.js # 全局配置
46+ ├── app.css # 全局 CSS
47+ ├── app.js # 入口组件
48+ ├── index.html # H5 入口 HTML
49+ └── pages # 页面组件
50+ └── index
51+ ├── index.config.js # 页面配置
52+ ├── index.css # 页面 CSS
53+ └── index.jsx # 页面组件,如果是 Vue 项目,此文件为 index.vue
5454```
5555
5656通过 Taro CLI 工具基于` 默认模板 ` 创建 Taro 工程,使用如下编译命令生成 harmony-hybrid 平台的 Web 资源:
@@ -260,7 +260,7 @@ struct TaroHybridPage {
2602601 . 多容器的判断依据:html的Path路径为判断依赖,相同则共用,不同则新建载体页
2612612 . 容器共用的思路:通过鸿蒙的NodeContainer + NodeController实现
2622623 . 注意:
263- 1 . 容器共用存在一个问题:相邻两个原生Page之间如何共用容器 ,页面切换动画时,会有一个页面白屏,进入和退出时都会出现,尽量避免相邻两个原生Page之间共用容器。
263+ 1 . 容器共用存在一个问题:相邻两个原生Page之间如果共用容器 ,页面切换动画时,会有一个页面白屏,进入和退出时都会出现,尽量避免相邻两个原生Page之间共用容器。
264264
265265## 进阶教程
266266
@@ -301,22 +301,22 @@ static onBack(taroWebController: TaroWebController): boolean {
301301##### 小程序内置规则
302302在业务较为复杂的场景时,项目通常分为多个` bundle ` ,内置到应用时遵循以下目录结构规则:
303303```
304- ├ ──rawfile # 应用rawfile目录
305- │ └──spa # 多bundle内置目录,支持配置
306- │ ├──spa_main@100000 # 小程序1的bundle
307- │ │ └──spa # 一级目录
308- │ │ └──main # 二级目录
309- │ │ ├──js # js目录
310- │ │ ├──css # css目录
311- │ │ ├──static # 静态资源目录
312- │ │ └──index.html # 首页文件
313- │ ├ ──spa_new@100000 # 小程序2的bundle
314- │ │ └──spa # 一级目录
315- │ │ └──new # 二级目录
316- │ │ ├──js # js目录
317- │ │ ├──css # css目录
318- │ │ ├──static # 静态资源目录
319- │ │ └──index.html # 首页文件
304+ └ ──rawfile # 应用rawfile目录
305+ └──spa # 多bundle内置目录,支持配置
306+ ├──spa_main@100000 # 小程序1的bundle
307+ │ └──spa # 一级目录
308+ │ └──main # 二级目录
309+ │ ├──js # js目录
310+ │ ├──css # css目录
311+ │ ├──static # 静态资源目录
312+ │ └──index.html # 首页文件
313+ └ ──spa_new@100000 # 小程序2的bundle
314+ └──spa # 一级目录
315+ └──new # 二级目录
316+ ├──js # js目录
317+ ├──css # css目录
318+ ├──static # 静态资源目录
319+ └──index.html # 首页文件
320320```
321321以上目录结构的解释说明
3223221 . rawfile目录下的spa,为多bundle的内置目录,容器会在此目录下读取bundle加载,支持以下方式配置(该目录要与配置一致):
@@ -332,7 +332,7 @@ GlobalThis.getInstance().setRawFile('spa')
332332LocalUpdateManager .updateMiniOnLaunch ()
333333```
3343342 . 内置更新缓存至磁盘,若磁盘缓存bundle版本 < rawfile内置版本,则将内置bundle更新至磁盘,具体实现参见以下方法:
335- ```
335+ ``` typescript
336336LocalUpdateManager .updateAllMini ()
337337```
3383383 . 更新至磁盘的bundle在容器加载时会被自动查找加载;
@@ -341,7 +341,7 @@ LocalUpdateManager.updateAllMini()
341341GlobalThis .getInstance ().setDiskUpdateEnable (false )
342342```
343343##### 热更新
344- 开发中。。。
344+ 目前正在开发阶段,暂不支持。
345345#### 整体方案简介
346346
347347动态下开发台吗,在不发布新版本的情况下修复` bug ` 和发布新功能,绕开应用商店的审核机制,避免长时间审核以及多次被拒绝造成的成本问题,缩短用户取得新版本的流程,改善用户体验。
@@ -366,7 +366,7 @@ if (lastVerInfo?.diskCachePath) { // 走本地缓存
366366 }
367367```
368368
369- ##### 入口函数--` updateMiniOnLaunch `
369+ ##### 2、 入口函数--` updateMiniOnLaunch `
370370
371371入口函数` updateMiniOnLaunch ` 接收一个` context ` ,首先初始化了基类` UpdateManager ` ,然后获取了` rawfile ` 目录下的文件内容,并传入到了` updateAllMini ` 中进行逻辑处理。
372372
@@ -386,7 +386,7 @@ updateMiniOnLaunch(context: AppContext.UIAbilityContext) {
386386
387387
388388
389- ##### 1 、获取` rawfile ` 文件信息--` getMiniRawList `
389+ ##### 3 、获取` rawfile ` 文件信息--` getMiniRawList `
390390
391391从全局存储中拿出初始化时存储的` rawfile ` 文件名,根据该文件名称,获取该文件夹下所有的文件信息。
392392
@@ -397,7 +397,7 @@ getRawMiniList(context: common.Context): Array<string>{
397397}
398398```
399399
400- ##### 2 、更新所有的资源包信息---` updateAllMini `
400+ ##### 4 、更新所有的资源包信息---` updateAllMini `
401401
402402该函数接收一个` context ` 和` rawfile ` 文件信息,返回一个` Promise ` 对象。通过` rawfile ` 文件信息,构建` LocalVersionInfo ` 实例对象,该对象存储了对应文件的版本号、业务标识` biz ` , 以及` rawfile ` 路径,将其存储到` UpdateConfig ` 单例的` Map ` 对象中,这样在资源拦截时可以从该` Map ` 中通过相应的业务标识获取到对应资源的信息。` rawfile ` 目录下的资源可能不是最新的,需要与本地缓存进行对比,如果本地缓存中没有任何资源,则需要将` rawfile ` 的资源复制到本地沙箱相应位置中,这样可以通过字节码优化,能提高性能。由于` rawfile ` 文件复制到了沙箱,这样沙箱资源一直都是最新的,所以需要更新存储在` UpdateConfig ` 单例的` Map ` 对象的资源信息。
403403
@@ -772,7 +772,7 @@ taro的NativeApi,是taro暴露给鸿蒙实现的原生方法。使得Taro具
772772如果应用层想扩展,对额外的同步方法使用缓存机制以提高执行效率,则可以通过如下步骤扩展使用缓存的方法:
773773
774774#### 明确使用缓存的方法名
775- ```
775+ ``` typescript
776776let list = new ArrayList <string >();
777777list .add (" youMethodName1" )
778778list .add (" youMethodName2" )
@@ -786,26 +786,26 @@ list是一个方法名的列表,用于标识哪些NativeApi中的方法使用
786786同步方法使用缓存机制可以极大加快api响应速度,但是需要及时更新缓存中的数据。开发者需要在合适的时机监听数据变化,并通过如下方法更新数据
787787
788788
789- ```
789+ ``` typescript
790790nativeUpdater .update (p : NativeApiPair , v ?: any )
791791```
792792举例说明:
793793
7947941 . youMethodName1方法执行全量数据更新(无入参的情况):
795795
796- ```
796+ ``` typescript
797797nativeUpdater .update (new NativeApiPair (" YouMethodName1" ,[]))
798798```
799799
800800
8018012 . youMethodName1方法执行全量数据更新(有入参的情况):
802802
803- ```
803+ ``` typescript
804804nativeUpdater .update (new NativeApiPair (" youMethodName1" ,[" param1" ,123 ]))
805805```
8068063 . youMethodName1方法执行局部数据更新(仅更新其中某个字段:myField):
807807
808- ```
808+ ``` typescript
809809nativeUpdater .update (new NativeApiPair (" youMethodName1" ,[" param1" ,123 ]," myField" )," newData" )
810810```
811811#### 注意
0 commit comments