Flutter-Android原生通过引擎调用Flutter界面

2022-05-10  本文已影响0人  阿博聊编程
配图来自网络,如侵必删

在原生项目当中嵌入Flutter界面,如果是只有一个模块的话,我们们可以通过Flutter引擎做缓存,达到让Flutter界面秒开的效果。分享一下,我学习到的使用方法。

AndroidManifest.xml

第一步是需要在AndroidManifest.xml当中注册我们的FlutterActivity界面:

<application>
    ...
    <activity
            android:name="io.flutter.embedding.android.FlutterActivity"/>
</application>

Application

Application需要初始化FlutterEngine(Flutter的引擎),这一步是非常重要的。

public class App extends Application {

    private FlutterEngine flutterEngine;

    @Override
    public void onCreate() {
        super.onCreate();
        //Flutter引擎
       flutterEngine = new FlutterEngine(this);
       // 页面做缓存
       flutterEngine.getNavigationChannel().setInitialRoute("image_page");
        //通过engine_id唯一标识来缓存
        lutterEngine.getDartExecutor().executeDartEntrypoint(DartExecutor.DartEntrypoint.createDefault());
        FlutterEngineCache.getInstance().put("engine_id", fe);

    }

    /**
     * onTerminate()当App销毁时执行
     */
    @Override
    public void onTerminate() {
        //销毁flutter引擎
        flutterEngine.destroy();
        super.onTerminate();
    }
}

页面调用

这里展示的是代码当中的调用,非常的简单,代码如下:

startActivity(FlutterActivity.withNewEngine().initialRoute("image_page").build(this));

这是一个简单的Android原生跳转到Flutter界面的代码,希望对一样是Flutter初学的小伙伴有所帮助。

上一篇 下一篇

猜你喜欢

热点阅读