alibaba / alibaba/flutter_boost

flutter接收不到native回传的参数

Open
#1,482 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Dart
Stars
7.2k
Forks
1.3k
PR merge metrics
No merged PRs in 30d

Description

### 问题描述
打开native页面后快速操作并返回到flutter页面,flutter大概率接收不到回传的参数。重点在于快速返回到flutter页面

### flutter boost版本
```
flutter_boost:
git:
url: 'https://github.com/alibaba/flutter_boost.git'
ref: 'v3.0-null-safety-preview.13'
```

### 代码
#### flutter跳转到native页面
```
static Future addressList(String type) async {
Future result =
BoostNavigator.instance.push("addressList", arguments: {"type": type});
result.then((value) => {
if (value != null) {debugPrint("---------->${value.toString()}")}
});
return result;
}
```
#### native端代码,跳转到原生业务页面
```

Activity activity = FlutterBoost.instance().currentActivity();
String pageName = options.pageName();
if (StringUtils.isEmpty(pageName)) {
return;
}
Map arguments = options.arguments();
///地址库列表
if (pageName.equalsIgnoreCase("addressList")) {
if (options.arguments().get("type") == null) {
return;
}
boolean isSend = Objects.requireNonNull(arguments.get("type")).toString().equalsIgnoreCase("send");
Intent intent = new Intent(activity, AddressSinglePickListActivity.class);
intent.putExtras(AddressSinglePickListActivity.getBundle(true, isSend
? BaseAddressListFragment.TAGS_SEND : BaseAddressListFragment.TAGS_RECEIVER));
activity.startActivityForResult(intent, options.requestCode());
return;
}
```

### 版本及开发环境
```
[√] Flutter (Channel stable, 2.5.0, on Microsoft Windows [Version 10.0.17763.2300], locale zh-CN)
• Flutter version 2.5.0 at D:\flutter\flutterSdk
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 4cc385b4b8 (3 months ago), 2021-09-07 23:01:49 -0700
• Engine revision f0826da7ef
• Dart version 2.14.0

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at C:\Users\kuaidi100\AppData\Local\Android\sdk
X cmdline-tools component is missing
Run `path/to/sdkmanager --install "cmdline-tools;latest"`
See https://developer.android.com/studio/command-line for more details.
X Android license status unknown.
Run `flutter doctor --android-licenses` to accept the SDK licenses.
See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.

[√] Chrome - develop for the web
• Chrome at C:\Users\kuaidi100\AppData\Local\Google\Chrome\Application\chrome.exe

[√] Android Studio (version 4.1)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin can be installed from:
https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] IntelliJ IDEA Community Edition (version 2021.1)
• IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1
• Flutter plugin can be installed from:
https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
https://plugins.jetbrains.com/plugin/6351-dart

[√] Connected device (2 available)
• KB2000 (mobile) • dcd00b21 • android-arm64 • Android 11 (API 30)
• Chrome (web) • chrome • web-javascript • Google Chrome 96.0.4664.45

```

### 日志
FlutterBoostActivity中的onActivityResult回调中可以看到回传参数

```
2021-11-24 15:07:57.636 13622-13622/com.Kingdee.Express D/---------->: onActivityResult: guidvalue:"d9ba82cf-5419-4fec-bf8a-d3606ca5da01"
2021-11-24 15:07:57.636 13622-13622/com.Kingdee.Express D/---------->: onActivityResult: address_bookvalue:{"address":"金蝶软件园(高新南七道)job","fixedPhone":"","guid":"d9ba82cf-5419-4fec-bf8a-d3606ca5da01","id":13,"isDefault":0,"isDelete":0,"isModified":0,"isNeed2Save2Db":true,"isSaved2Db":true,"lastModify":1637572055237,"name":"脱敏","phone":"135****9086","postCode":"null","serverId":1117661800,"showDesensitized":true,"tag":"null","userId":"444591923","xzqName":"广东省,深圳市,南山区","xzqNumber":""}

```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with FlutterBoostActivity.onActivityResult, the BoostNavigator.instance.push call, and the native startActivityForResult path shown in the report. Reproduce the rapid return from AddressSinglePickListActivity, then trace how the logged result reaches Flutter. Done means the returned parameters are consistently received after a quick return.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, dart, java
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.