频道栏目
首页 > 程序开发 > 移动开发 > Android > 正文
Flutter与Android原生的交互实例讲解
2018-07-04 13:46:21         来源:100斤的博客  
收藏   我要投稿

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

预览图:

这里写图片描述

点击复制链接 与好友分享!回本站首页
上一篇:关于Android开发中需要掌握的基础知识点讲述
下一篇:android 8.0开发流程分析
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站