Flutter与Android原生的交互实例讲解
程序员文章站
2022-05-14 09:49:02
flutter发布preview版本后热度持续上升,但是仍然有很多不足之处,所有前期还是采用与原生结合的混合开发,那就需要了解flutter与原生的交互的一些方法。
原生启动flutter acti...
flutter发布preview版本后热度持续上升,但是仍然有很多不足之处,所有前期还是采用与原生结合的混合开发,那就需要了解flutter与原生的交互的一些方法。
原生启动flutter activity
新建flutter 项目默认启动mainactivity,继承自flutteractivity,在androidmanifest中可以看到intent-filter的配置。
思路:新建一个android原生的activity(splashactivity),增加一个按钮,启动flutter的mainactivity。
原生activity,oncreate代码
@override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_splash); findviewbyid(r.id.go_flutter).setonclicklistener(new onclicklistener() { @override public void onclick(view v) { intent intent = new intent(splashactivity.this, mainactivity.class); splashactivity.this.startactivity(intent); } }); }
配置androidmanifest:将mainactivity的intent-fliter移到splashactivity,这样默认就启动原生的activity,有原生的activity点击启动flutter的mainactivity。
flutter 启动原生activity
flutter与原生的交互主要通过插件的方式。
思路:在mainactivity中注册插件,在widget中增加一个button,点击后启动原生的activity。
插件名为demo.plugin,处理方法interaction启动原生activity,其他不处理。
// 自定义插件 string channel = "demo.plugin"; new methodchannel(getflutterview(), channel).setmethodcallhandler(new methodcallhandler() { @override public void onmethodcall(methodcall call, result result) { if (call.method.equals("interaction")) { intent intent = new intent(mainactivity.this, splashactivity.class); mainactivity.this.startactivity(intent); result.success("success"); } else { result.notimplemented(); } } });
预览图:
上一篇: 过年回家抢票,让光猫自动重启的小脚本