feat(app): share redesign — card share (system), QR poster (banner+title+time+venue+QR, downloadable), copy link
- 三方式(用户需求):①卡片模式默认=系统分享面板(share_plus SharePlus. instance,微信/其他应用,文本=标题+链接)②生成二维码=海报弹层——顶部 宣传图(banner→cover→品牌占位回退)+ 活动标题 + 时间 + 地址 + 二维码, 「下载海报图」RepaintBoundary 3x 渲染 PNG → gal 存相册 ③复制链接 - 依赖 share_plus + gal;分享/保存均 Provider 注入(测试替身) - 测试适配三方式结构 + 海报弹层断言(397/397 全绿、analyze 0) Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -421,5 +421,10 @@
|
||||
"bannerPicker": "Banner",
|
||||
"bannerPickerHint": "Tap to pick a banner image (shown atop the viewer page)",
|
||||
"bannerSelected": "Banner selected — will upload on save",
|
||||
"bannerUploadFailed": "Banner upload failed"
|
||||
"bannerUploadFailed": "Banner upload failed",
|
||||
"shareCardMode": "Share to WeChat / other apps",
|
||||
"sharePosterMode": "Generate QR poster",
|
||||
"posterDownload": "Download poster image",
|
||||
"posterSaved": "Poster saved to gallery",
|
||||
"posterSaveFailed": "Failed to save poster"
|
||||
}
|
||||
|
||||
@@ -1981,6 +1981,36 @@ abstract class AppLocalizations {
|
||||
/// In zh, this message translates to:
|
||||
/// **'宣传图上传失败'**
|
||||
String get bannerUploadFailed;
|
||||
|
||||
/// No description provided for @shareCardMode.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'分享到微信 / 其他应用'**
|
||||
String get shareCardMode;
|
||||
|
||||
/// No description provided for @sharePosterMode.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'生成二维码海报'**
|
||||
String get sharePosterMode;
|
||||
|
||||
/// No description provided for @posterDownload.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'下载海报图'**
|
||||
String get posterDownload;
|
||||
|
||||
/// No description provided for @posterSaved.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'海报已保存到相册'**
|
||||
String get posterSaved;
|
||||
|
||||
/// No description provided for @posterSaveFailed.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'海报保存失败'**
|
||||
String get posterSaveFailed;
|
||||
}
|
||||
|
||||
class _AppLocalizationsDelegate
|
||||
|
||||
@@ -1013,4 +1013,19 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get bannerUploadFailed => 'Banner upload failed';
|
||||
|
||||
@override
|
||||
String get shareCardMode => 'Share to WeChat / other apps';
|
||||
|
||||
@override
|
||||
String get sharePosterMode => 'Generate QR poster';
|
||||
|
||||
@override
|
||||
String get posterDownload => 'Download poster image';
|
||||
|
||||
@override
|
||||
String get posterSaved => 'Poster saved to gallery';
|
||||
|
||||
@override
|
||||
String get posterSaveFailed => 'Failed to save poster';
|
||||
}
|
||||
|
||||
@@ -980,4 +980,19 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get bannerUploadFailed => '宣传图上传失败';
|
||||
|
||||
@override
|
||||
String get shareCardMode => '分享到微信 / 其他应用';
|
||||
|
||||
@override
|
||||
String get sharePosterMode => '生成二维码海报';
|
||||
|
||||
@override
|
||||
String get posterDownload => '下载海报图';
|
||||
|
||||
@override
|
||||
String get posterSaved => '海报已保存到相册';
|
||||
|
||||
@override
|
||||
String get posterSaveFailed => '海报保存失败';
|
||||
}
|
||||
|
||||
@@ -421,5 +421,10 @@
|
||||
"bannerPicker": "宣传图",
|
||||
"bannerPickerHint": "点击选择宣传图(展示在观众页顶部)",
|
||||
"bannerSelected": "已选择宣传图——保存时上传",
|
||||
"bannerUploadFailed": "宣传图上传失败"
|
||||
"bannerUploadFailed": "宣传图上传失败",
|
||||
"shareCardMode": "分享到微信 / 其他应用",
|
||||
"sharePosterMode": "生成二维码海报",
|
||||
"posterDownload": "下载海报图",
|
||||
"posterSaved": "海报已保存到相册",
|
||||
"posterSaveFailed": "海报保存失败"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user