Flutter 与 Android

说明

在本人项目中以 aar 的方式,将Flutter接入Android。本文旨在记录,不为教学,不定时更新。

Flutter与Android交互

退出Flutter Activity

Android:

class MyClass(context: Context, route: String) : AbstractFlutterPage(context, route) {    override fun getMethodChannelName(): String {        return "my_package_name/way"    }    override fun onMethodCall(methodCall: MethodCall?, result: MethodChannel.Result?) {        methodCall?.let {            when {                methodCall.method == "popNativePage" -> {                    if(mContext is Activity){                        mContext.finish()                    }                    result?.success("")                }                else -> result?.notImplemented()            }        }    }}

Flutter:

static const methodChannel =    const MethodChannel('my_package_name/way');    void _invokeNativePop() async {    ifYouHaveReturnValue = await methodChannel.invokeMethod("popNativePage");}

Android调起Flutter

项目中使用Arouter作为路由框架。

Android:

override fun onClick(v: View?) {        when (v?.id) {            R.id.id_name -> {                ARouter.getInstance().build(ARouterConstants.FLUTTER_ACTIVITY)                    .withRoute(ARouterConstants.Flutter_Routes.WAY).navigation()            }        }}

Flutter:

void main() => runApp(_widgetForRoute(ui.window.defaultRouteName));Widget _widgetForRoute(String route) {  switch (route) {    case 'WAY':      return new MaterialApp(        title: 'MyName',        theme: new ThemeData(          primarySwatch: Colors.blue,          highlightColor: Color(0xFF7B40FF),          primaryColor: Color(0xFF6132CB),          disabledColor: Color(0xFFD7C6FF),        ),        home: MyView(),      );  default:      return Center(        child: Text('Unknown route: $route', textDirection: TextDirection.ltr),      );  }}

更多相关文章

  1. Android Studio快捷键、配置 Android Studio、cmake配置Android
  2. android原生项目整合ReactNative
  3. 【Android 应用开发】GitHub 优秀的 Android 开源项目
  4. library project 和android项目
  5. android studio打开react-native的android工程项目时预编译失败
  6. Android实时监控项目第一篇:项目分析及AVD模拟效果图
  7. Android快速开发架构PlanA(二),简单粗暴的路由管理PRouter
  8. 我所理解的Android模块化(一)——模块化概念和路由
  9. 个人对android中项目命名规则的整理

随机推荐

  1. Android(安卓)4.0 源码 下 载
  2. 文章标题android自制多媒体视频播放器和
  3. 一句话锁定MySQL数据占用元凶
  4. 适合Material Dsign的新抽屉---Navigatio
  5. 使用Android手机APP查看ROS中RGB摄像头数
  6. listview每一条中间有空隙问题解决
  7. 2017-06-09-LayoutTransition 容器布局动
  8. RK3399 Android7.1 编译
  9. Android(安卓)RSA 公钥加密 遇到坑
  10. Android中AsyncTask的源码分析以及实例