[Bug]: (share_plus) iOS drops the subject when sharing a uri
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 82/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- dart, ios, objective-c
- Lĩnh vực
- mobile
Hướng nghiên cứu
Bắt đầu trong packages/share_plus/share_plus/ios/share_plus/Sources/share_plus/FPPSharePlusPlugin.m, lần theo đường đi của shareUri: và so sánh với shareText: và shareFiles:. Truyền shareTitle đã được đọc qua shareUri: đến share:withSubject:. Hoàn tất khi việc chia sẻ URI trên iOS giữ nguyên chủ đề trong Mail đồng thời duy trì bản xem trước liên kết phong phú.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Platform
iOS 15
Plugin
share_plus
Version
13.3.0
Flutter SDK
3.44.9
Steps to reproduce
- On an iOS device, share a
uriwith asubject(see the code sample). - Pick Mail in the share sheet.
- The Mail compose view opens with an empty subject line.
On Android the same call fills the subject, because Share.kt puts it in EXTRA_SUBJECT for a uri too. ShareParams.subject is documented as "Supported platforms: All".
This is not a duplicate of #3968, #347 or #691. Those are about the text path and Gmail. This is the uri path, where the subject never reaches the share sheet at all.
Cause
The uri branch of FPPSharePlusPlugin.m never reads the subject:
- The subject is read into
shareTitle(L294-L297), but onlyshareText:andshareFiles:receive it. shareUri:callsshare:withSubject:nil(L460-L472).share:withSubject:only skipsNSNull, so it sets the controller'ssubjecttonil(L409-L411). The comment on that block says it is there to force the subject "when sharing a raw url or files", which is exactly the case that getsnil.
Suggested fix
Pass shareTitle into shareUri: and forward it to share:withSubject: instead of nil, as shareText: and shareFiles: already do. The item stays an NSURL, so the rich link preview is unaffected.
Code Sample
await SharePlus.instance.share(
ShareParams(
uri: Uri.parse('https://flutter.dev'),
subject: 'Subject for Mail',
),
);
Logs
No error or exception. The share sheet and Mail open normally, only the subject is empty.
Flutter Doctor
[✓] Flutter (Channel stable, 3.44.9, on macOS 26.6.2 25G83 darwin-arm64, locale en-EE) [431ms]
• Flutter version 3.44.9 on channel stable at /Users/**/.local/share/mise/http-tarballs/e5c14d6b5e917a8578327d2564ab78ece83cd685c74c29572ddaf7655f42205d
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 6b182d2c75 (8 weeks ago), 2026-08-05 10:04:07 -0700
• Engine revision 5a2a6a42cc
• Dart version 3.12.2
• DevTools version 2.57.0
• Feature flags: enable-web, enable-linux-desktop, enable-macos-desktop, enable-windows-desktop, enable-android, enable-ios, cli-animations, enable-native-assets, no-enable-swift-package-manager,
omit-legacy-version-file, enable-lldb-debugging, no-enable-uiscene-migration
[✓] Android toolchain - develop for Android devices (Android SDK version 37.0.0) [1,412ms]
• Android SDK at /Users/**/Library/Android/sdk
• Emulator version 36.1.9.0 (build_id 13823996) (CL:N/A)
• Platform android-37.0, build-tools 37.0.0
• ANDROID_HOME = /Users/**/Library/Android/sdk
• Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
This is the JDK bundled with the latest Android Studio installation on this machine.
To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
• Java version OpenJDK Runtime Environment (build 21.0.9+-14787801-b1163.94)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 26.6) [1,046ms]
• Xcode at /Applications/Xcode-26.6.0.app/Contents/Developer
• Build 17F113
• CocoaPods version 1.17.0
[✓] Chrome - develop for the web [5ms]
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
Checklist before submitting a bug
- I searched issues in this repository and couldn't find such bug/problem
- I Google'd a solution and I couldn't find it
- I searched on StackOverflow for a solution and I couldn't find it
- I read the README.md file of the plugin
- I'm using the latest version of the plugin
- All dependencies are up to date with
flutter pub upgrade - I did a
flutter clean - I tried running the example project
- Ngôn ngữ chính
- Dart
- Star
- 1.9k
- Fork
- 1.3k
- Merge trung bình
- 4 ngày 2 giờ
- Pull request đã merge (30 ngày)
- 15
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của fluttercommunity/plus_plugins
-
[Request]: network_info_plus: use ConnectivityManager for getWifiIP and getWifiGatewayIP from Android 7 (N), so ethernet works below Android 12Có thể đã có người làm @redge-munch đã nhận 3 ngày trước. Đang mởenhancement triage
Độ khó 3/5 Nửa ngày Mức phù hợp với người mới 22/100
fluttercommunity/plus_plugins#3998 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[package_info_plus]: Use Flutter's compile-time build name/number on web instead of version.jsonCó thể đã có người làm @Ortes đã nhận 10 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 25/100
fluttercommunity/plus_plugins#3989 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement triage
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
fluttercommunity/plus_plugins#3976 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
fluttercommunity/plus_plugins#3974 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement triage
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 48/100
fluttercommunity/plus_plugins#3973 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của fluttercommunity/plus_plugins
Issue tương tự
-
bug product: very_good_flutter_plugin
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 78/100
VeryGoodOpenSource/very_good_templates#654 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 80/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Server never consumes the request body on early-error paths: _sinkIncoming does not resume the paused subscriptionCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
[BUG][All] VLESS URIs with flow=xtls-rprx-vision-udp443 are silently dropped on subscription importĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
simonoppowa/OpenNutriTracker#1336 ·
Maintainer thường phản hồi trong vòng 1 ngày