成都大成网,美脚趾甲,上古天真论篇
flutter发布preview版本后热度持续上升,但是仍然有很多不足之处,所有前期还是采用与原生结合的混合开发,那就需要了解flutter与原生的交互的一些方法。
新建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与原生的交互主要通过插件的方式。
思路:在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(); } } });
预览图:
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android apk 项目一键打包并上传到蒲公英的实现方法
Android 自定义LineLayout实现满屏任意拖动功能的示例代码
android 限制某个操作每天只能操作指定的次数(示例代码详解)
Android 集成 google 登录并获取性别等隐私信息的实现代码
网友评论