返回

Flutter与Android的混合开发(三):Flutter如何跳转到Activity,如何传值

见解分享

在Flutter与Android的混合开发过程中,经常需要在Flutter页面和Activity之间进行跳转,并传递数据。本文将详细介绍如何在Flutter中实现跳转到Activity,以及如何进行数据传递。

一、在Flutter中跳转到Activity

要在Flutter中跳转到Activity,可以使用startActivity()方法。此方法需要传入一个Intent对象,该对象指定要启动的Activity以及要传递的数据。

// 创建Intent对象
Intent intent = Intent();

// 设置Intentaction,表明要启动的Activity
intent.action = Intent.ACTION_VIEW;

// 设置Intent的数据,表明要跳转到的Activity
intent.data = Uri.parse("https://flutter.dev");

// 启动Activity
startActivity(intent);

二、在Activity中接收数据

在Activity中接收数据可以使用getIntent()方法。此方法返回一个Intent对象,其中包含Flutter页面传递的数据。

// 获取Intent对象
Intent intent = getIntent();

// 从Intent中获取数据
String data = intent.getData().toString();

三、从Activity跳转到Flutter页面

从Activity跳转到Flutter页面可以使用FlutterActivity类。此类提供了startActivity()方法,用于启动Flutter页面。

// 创建FlutterActivity对象
FlutterActivity flutterActivity = new FlutterActivity();

// 设置FlutterActivity的Intent
Intent intent = new Intent(this, flutterActivity.class);

// 启动FlutterActivity
startActivity(intent);

四、从Flutter页面传值给Activity

从Flutter页面传值给Activity可以使用Activity.startActivityForResult()方法。此方法需要传入一个Intent对象和一个请求码。

// 创建Intent对象
Intent intent = Intent();

// 设置Intentaction,表明要启动的Activity
intent.action = Intent.ACTION_VIEW;

// 设置Intent的数据,表明要跳转到的Activity
intent.data = Uri.parse("https://flutter.dev");

// 启动Activity并设置请求码
startActivityForResult(intent, REQUEST_CODE);

在Activity中,可以使用onActivityResult()方法获取Flutter页面返回的数据。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == REQUEST_CODE) {
        if (resultCode == RESULT_OK) {
            // 获取Flutter页面返回的数据
            String data = data.getData().toString();
        }
    }
}