使用Flutter_Boost进行混合开发-Android

本文详细介绍了如何使用Flutter_Boost进行Android混合开发,包括创建Flutter模块、添加依赖、初始化Flutter_Boost、配置Android项目,以及实现Android与Flutter之间的页面跳转、嵌入和数据传递。特别强调了Flutter模块的正确创建方式以及Flutter_Boost的关键配置步骤。
摘要由CSDN通过智能技术生成

使用Flutter_Boost进行混合开发-Android

  1. 创建Flutter项目,用 flutter create -t module fluttr_test 命令来创建,flutter_test为我们的Flutter的工程名

用Android studio打开刚才创建的功能,我们刚创建好的时候不会有.android与.ios这两个目录的,用Android studio打开构建一下就出来了(也可以用flutter make-host-app-editable命令来创建出来),.android与.ios中都存在一个Flutter目录,这个很重要,我试过只有通过flutter create -t module XXX命令生成出来的才有这个Flutter的文件夹,直接创建出来的没有,Flutter这个是我们flutter的库项目,Android用来生成aar,iOS用来生成framework

image-20190708152623127.png

2.接下来就是依赖了,添加flutter的依赖

这里要注意层级关系,要和flutter:一个层级

flutter_boost: ^0.0.415

image-20190711141333017.png

添加完依赖后,在flutter中初始化flutter_boost,配置路由

import 'package:flutter/material.dart';
import 'package:flutter_boost/flutter_boost.dart';
import 'package:fluttr_test/firstpage.dart';
import 'package:fluttr_test/second.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyApp> {


  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    FlutterBoost.singleton.registerPageBuilders({
      'first':(pageName,params,_){//格式为路由名称:(pageName,params,_)pageName是路由名称,params为原生传递过来的参数
        return FirstPage();//返回一个widget
      },
      'second':(pageNmae,params,_){
        return Second();
      },

    });

    FlutterBoost.handleOnStartPage();//查询当前的顶层页面,并加载它
  }

  @override
  Widget build(BuildContext context) {
      return MaterialApp(
        title: 'oa',
        builder: FlutterBoost.init(),
        home: Container(),
      );
  }
}
  1. flutter配置完了,接下来就是配置Android
  • settings.gradle中添加,这里我是把flutter_test工程放在和Android工程同一级目录下的(是与project同一级,不是与module同一级),这里如果报文件找不到那就是你的路径写错了,重新检查一下路径

这里切记flutter一定要生成出.android与.ios两个文件

setBinding(new Binding(gradle:this))
evaluate(new File('../flutter_test/.android/include_flutter.groovy'))
  • app.gradle中配置flutter与flutter_boost
implementation project(path:':flutter')
implementation project(":flutter_boost")
  • Application中进行初始化
FlutterMain.startInitialization(this);

FlutterBoostPlugin.init(new IPlatform() {
   
    @Override
    public Application getApplication() {
   
        return FunnyApplication.this;
    }

    /**
     * 获取应用入口的Activity,这个Activity在应用交互期间应该是一直在栈底的
     * @return
     */
    @Override
    public Activity getMainActivity() {
   
        if (MainActivity.sRef != null) {
   
            return MainActivity.sRef.get
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值