flutter 混合开发

2020-11-27  本文已影响0人  liboxiang

https://github.com/alibaba/flutter_boost

Flutter Engine复用

iOS实现

通过以下代码就可以将flutterEngine渲染的页面转移到新的viewController显示。

flutterEngine?.viewController

新建FlutterViewController使用传递flutterEngine的方法初始化

- (instancetype)initWithEngine:(FlutterEngine*)engine
                       nibName:(nullable NSString*)nibName
                        bundle:(nullable NSBundle*)nibBundle NS_DESIGNATED_INITIALIZER;

android实现

主要代码如下
Application

// Instantiate a FlutterEngine.
        FlutterEngine flutterEngine = new FlutterEngine(this);

        // Start executing Dart code to pre-warm the FlutterEngine.
        flutterEngine.getDartExecutor().executeDartEntrypoint(
                DartExecutor.DartEntrypoint.createDefault()
        );

        // Cache the FlutterEngine to be used by FlutterActivity.
        FlutterEngineCache
                .getInstance()
                .put(TuyaConstant.flutterEngineId, flutterEngine);

MainActivity

override fun getCachedEngineId(): String? {
        return TuyaConstant.flutterEngineId;
    }

跳转到新的FlutterActivity

Intent intent = FlutterActivity
                                            .withCachedEngine(TuyaConstant.flutterEngineId)
                                            .build(getCurrentActivity());
getCurrentActivity().startActivity(intent);
上一篇 下一篇

猜你喜欢

热点阅读