boost组件。原生页面跳转flutter页面后,返回原页面
时间: 2023-06-22 14:33:58 浏览: 130
Boost 是一个 Flutter 插件,它提供了一种从原生页面跳转到 Flutter 页面,并且可以在 Flutter 页面中使用 Navigator API 返回原生页面的方式。
具体实现步骤如下:
1. 在原生页面中配置 Boost。
```java
public class MainActivity extends AppCompatActivity {
private BoostFlutterActivityDelegate delegate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
delegate = new BoostFlutterActivityDelegate(this, savedInstanceState);
setContentView(delegate.getContainer());
delegate.onCreate(savedInstanceState);
}
@Override
protected void onResume() {
super.onResume();
delegate.onResume();
}
@Override
protected void onPause() {
super.onPause();
delegate.onPause();
}
@Override
protected void onStop() {
super.onStop();
delegate.onStop();
}
@Override
protected void onDestroy() {
super.onDestroy();
delegate.onDestroy();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
delegate.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
delegate.onRestoreInstanceState(savedInstanceState);
}
@Override
public void onBackPressed() {
if (!delegate.onBackPressed()) {
super.onBackPressed();
}
}
}
```
这里的 `BoostFlutterActivityDelegate` 是 Boost 提供的一个类,它可以实现从原生页面跳转到 Flutter 页面,并且可以在 Flutter 页面中返回原生页面。
2. 在原生页面中跳转到 Flutter 页面。
```java
BoostFlutterActivityBuilder builder = BoostFlutterActivityBuilder.withUrl("flutter_page");
Boost.instance().boost(this, builder);
```
这里的 `"flutter_page"` 指的是要跳转到的 Flutter 页面的路由名称,需要在 Flutter 项目中定义。
3. 在 Flutter 页面中使用 Navigator API 返回原生页面。
```dart
RaisedButton(
child: Text('返回原生页面'),
onPressed: () {
BoostNavigator.instance.pop();
},
),
```
这里的 `BoostNavigator.instance.pop()` 方法可以返回原生页面。
这样就可以在原生页面跳转到 Flutter 页面,并且可以在 Flutter 页面中返回原生页面了。
阅读全文