当前位置: 移动技术网 > IT编程>移动开发>Android > Flutter与Android原生的交互实例讲解

Flutter与Android原生的交互实例讲解

2019年01月02日  | 移动技术网IT编程  | 我要评论

成都大成网,美脚趾甲,上古天真论篇

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();
  }
}
 });

预览图:

这里写图片描述

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网