Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
iamagirlforios committed Jun 28, 2022
1 parent 91e31ea commit d25409e
Showing 1 changed file with 75 additions and 33 deletions.
108 changes: 75 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,22 @@ FairPushy 是为 Flutter 设计的动态化框架的动态更新平台,通过


## 移动端SDK接入方式
#### 引入SDK
### 引入SDK

```
使用git或者引入源码的方式

```dart
fair_pushy:
git:
url: https://github.com/wuba/FairPushy.git
path: sdk
url: https://github.com/wuba/FairPushy.git
path: FairPushy/sdk
```

#### 初始化SDK


### 初始化SDK

main()函数中调用初始化方法

```dart
FairPushy.init(
Expand All @@ -23,53 +29,89 @@ FairPushy.init(

<!--appid:web可视化平台中的项目id-->

<!--updateUrl:接入方更新获取补丁config文件的服务器地址-->
<!--updateUrl:接入方获取补丁config文件的服务器地址-->

<!--debug:运行环境-->



#### 调用模块更新api
### 热更新api

```
FairPushy.updateBundle(bundleid: "6005")
```
1. ##### 单module更新工程

<!--bundleid可视化平台中模块对应的补丁唯一标识-->
进入flutter工程就需要下载热更新文件,两种方式:

该方法内部实现补丁更新逻辑,包括补丁配置文件的获取,判断是否更新,补丁的下载,解压,缓存逻辑。
a. 直接调用updateBundle接口:

```dart
FairPushy.updateBundle(bundleid: "6005")
```

<!--bundleid可视化平台中模块对应的补丁唯一标识-->

#### 使用loading中间件

```dart
FairPushyWidget(
bundleid: BundleConst.car,
// targetPageName: "car_cate"
targetWidgetBuilder: (context) => CarCatePage());
```
b. 使用loading中间件,用FairPushyWidget替代根widget

<!--targetPageName:module间跳转时的目标界面pagename,传入pagename需要在FairPushy中进行界面的注册,详见example示例工程-->
```dart
MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: FairPushyWidget(
bundleid: '6005',
targetWidgetBuilder: (context) => HomePage(),
));
```

<!--targetWidgetBuilder:module间跳转时的目标界面widget-->

在module间跳转的时候,可以先跳SDK中提供的中间件,中间件中实现了补丁的更新逻辑,走完更新补丁逻辑,会把目标页替换成传入的targetWidget。
2. ##### 多module工程

分为进模块独立更新和进app全部更新的方式。

a. 进模块独立更新:

#### getConfigs接口
如果只使用更新API,业务方自己实现目标页loading过程,且需要目标页调用updateBundle:

如果接入方在多module的工程结构下,想进app就下载所有的补丁文件,可以调用该接口获取appid对应项目下的所有补丁config信息,然后调用downloadConfig方法进行下载。
```dart
FairPushy.updateBundle(bundleid: "6005")
```



调用了loading中间件,需要在module间跳转的时候,可以先跳SDK中提供的中间件,中间件中实现了补丁的更新逻辑,走完更新补丁逻辑,会把目标页替换成传入的targetWidget。

```dart
Navigator.push(context, MaterialPageRoute(builder: (context) {
return FairPushyWidget(
bundleid: BundleConst.car,
// targetPageName: "car_cate"
targetWidgetBuilder: (context) => CarCatePage());
}));
```

<!--targetPageName:module间跳转时的目标界面pagename,传入pagename需要在FairPushy中进行界面的注册,详见example示例工程-->

<!--targetWidgetBuilder:module间跳转时的目标界面widget-->


b. 进app全部更新

如果接入方在多module的工程结构下,想进app就下载所有的补丁文件,可以调用getConfigs接口获取appid对应项目下的所有补丁config信息,然后调用downloadConfig方法进行下载。

```dart
FairPushy.getConfigs("https://fangfe.58.com/fairapp/module_patch_app").then((value) {
if (null != value && value.isNotEmpty) {
for (var i = 0; i < value.length; i++) {
FairPushy.downloadConfig(value[i]);
}
}
});
```
<!--url:业务方获取app所有资源文件的服务器地址-->

```dart
FairPushy.getConfigs("https://fangfe.58.com/fairapp/module_patch_app").then((value) {
if (null != value && value.isNotEmpty) {
for (var i = 0; i < value.length; i++) {
FairPushy.downloadConfig(value[i]);
}
}
});
```


0 comments on commit d25409e

Please sign in to comment.