no message
This commit is contained in:
parent
bb2d3e4740
commit
d27da83658
|
|
@ -0,0 +1,19 @@
|
|||
output: dist/
|
||||
releases:
|
||||
- name: prod
|
||||
jobs:
|
||||
- name: macos-zip
|
||||
package:
|
||||
platform: macos
|
||||
target: zip
|
||||
build_args:
|
||||
dart-define:
|
||||
APP_ENV: dev
|
||||
# 查看完整文档:https://distributor.leanflutter.org/configuration/makers/exe
|
||||
- name: windows-exe
|
||||
package:
|
||||
platform: windows
|
||||
target: exe
|
||||
build_args:
|
||||
dart-define:
|
||||
APP_ENV: dev
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
-----BEGIN DSA PRIVATE KEY-----
|
||||
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
|
||||
-----END DSA PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIIGRzCCBDkGByqGSM44BAEwggQsAoICAQDFh0SQxQ5ATMvE+ZhMGomtCuKDZUV9
|
||||
SASC0+vyexiSRVAL+jV0uC31kK0vCDidNuPIy44syt6t/UOWLMtKH6hVeUhE7dSx
|
||||
z/XQUusLxrMghTYFLxg8q3iT7eH80JjlN0p8KAbzbQDdwNzJuwNb+tOTf/OOW2xn
|
||||
dLyZpY/avohNS/BVJnnyO6+tarjnkI9Mw6/GGxHd34sHANCk2+7SmDhCJjajDr7v
|
||||
1ieJOALn1WG5937U+voZiHAf8IMG1kgyCh5qJESPUXNDtPM0lSdQ+RSmeHInOB/Z
|
||||
IjHwCMN/0yggkaqX2+ZVAJ7u7Vv3k8XvDtZcWclfrWC/PrWytoFUtLaGbi2bKRJ8
|
||||
Az5yywy1jAfBfhEzYJw8RgRWvxZB0y4Ed2kthFjMr4FxFd44+39n2+0yTRn84G7L
|
||||
lKcPeOV1tUu6kUB5g3oVRPBS9Wpe80XV+0LyRg0nFgGN2aFQzY6CEzfC9p3w6lUU
|
||||
3GAdCXY7pQwOWThelxzttvUxm+QLVdmGu37hcAKERrYg5adYJDEvD8xYwlSPv/JW
|
||||
qDshxA6HW8Cuv7C9rPkfyRCVq83ZfY+CVIvtc83DIhQVXDvHsHD9sYC6K5ey10zN
|
||||
ZIAGH7H/y8oLJ3xtucMucnfqAV4CioFo5mxdHLJubgMzBIvmM08O3GeIT6//0bsg
|
||||
5diTiQfoH7v5LwIhAP76c8ROt9EfNetfr8aCPi+eMVzO0C4OUVEdUo6R9xFZAoIC
|
||||
AFdQxNz0GBf9cBEFL4gLTGk7e38EC+oxqG/Ug0lSIDG8JgmjXaYJk0LC8us1YMBt
|
||||
deVwpU9Syv8c6CRE6I2lgbpesjX67f+/NY+nhuGvryD9+QsyYM/xdBzByGZxOY7S
|
||||
61KER969E1IIDWlF6WxPd2RGtYPiyDiHhw1UPeqrW5SuboX10ZhqHClQJEV1lFEP
|
||||
ylcFMH458qMe4XjHTPqCH8ioOsdwOkBgmM4ZT0LdmhwfqW2S27xGFczDWHv3t0k7
|
||||
QXbgIBzgq3I6peGy9O6WRSAku1BCDDMXxV2rGZHJBXEIIoNaZm5YWb7M7xABCySq
|
||||
fvbrXD9tZTSKX0xPlTttHgXs+QfdpuvLS3sWzP6AtiLFvzKdEwYBu1/pOaOa2aiA
|
||||
sc7nXc3/P0TYiL1ngd1KSticyQtP6WIo+XT0g7BN5WW+C0C1DC9W1fCBogltwJLJ
|
||||
lvISZ3cCXI78QS2BW1WvjVRiyfsyOWtXvl9s0RLApjpCMHnj9vjVM8csGszGYzeZ
|
||||
Qa+6OqM3M3NORybqV5eKLhVVqmDVs4F5Lj/8854u8HHdY4340tz1H5kd+3/+PpUF
|
||||
dyN215HJA5/qGy/aA+E/WnCUWBLOOPtnuR2RT2xxJzawfpjvKIn2f95VIe8yLD+W
|
||||
yV87T2iCSqug3AeeAWkIS+xpxFmGXbf0DtjnwDx7Ygk9A4ICBgACggIBAId26Jh0
|
||||
jlCiYAUSvLv+s5lyU51oI7XVl63dUeEBnlE/MaaZsMBOdI4VH05fSuLaHjjIzviw
|
||||
ZEhd/qW7P82PdD02Rc4oLb2QhekOKk47qU8VXLOmJWMPRZqEbyNV0x+GSuw7K8DK
|
||||
o13uD+HAgoqbfOLK+ZgFEwy/6utvhr2qJtk/yPCY4AzxhDv2MZJC5DDHlx9h/iFn
|
||||
7xduJK2Bw1Qnfgd43TKeXCTD2m1amqScwx9WWdSHG/HAmfLrhHlfxtjTb4HvJgLt
|
||||
rNZJ7anJ7AapDk8vaUe+0n5RpV+b+I4mt57EvN1JiSzAUg+J/xbkPSQvyMLoTUfw
|
||||
zCF8ryLitlMnz79S5qf/iLcXww2i3/saaqr83SwjABEStG+kCTJl5NSO488+Uqjk
|
||||
f2Dsmyfr60ecD2ePRJfvfqipeTRM/3nJo5xGJQCi1njrk256VUpuimW5HMCnQxqn
|
||||
2h3V852V08i5ix/U20ldMsWzVuqgFRAe46cZcFEUODvoRqE/XeepEDzTeSso19is
|
||||
9n9ZxKjW9tlI0LgfWCbXA//ezx34amXjaxSrdDFaxKpPWRQm5eiGwhq8OmWMAvGM
|
||||
xiodjfg/82q0Wn2ZqYBLeqaKuGbahL6rDIdidj69yQgeFbuhivcI6iENvQesDCVi
|
||||
xqzNyz8my0P48jVXui+9PFlCdm21gcugzJQL
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -141,5 +141,5 @@ abstract class RetrofitClient {
|
|||
|
||||
// 获取APP 版本
|
||||
@GET("/api/infra/AppVersion/Get")
|
||||
Future<AppVersion?> getLastAppVersion(@Query('appName') String appName, @Query('ftuType') int ftuType); // ftuType 1安卓 2IOS
|
||||
Future<AppVersion?> getLastAppVersion(@Query('appName') String appName, @Query('ftuType') int ftuType); // ftuType 1安卓 2IOS 3windows
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import 'package:event_bus/event_bus.dart';
|
|||
import 'package:making_school_asignment_app/common/utils/event_bus_utils.dart';
|
||||
|
||||
mixin EventBusMixin<T> {
|
||||
StreamSubscription? _subscription;
|
||||
late final StreamSubscription? _subscription;
|
||||
static final EventBusUtils _exampleUtil = EventBusUtils();
|
||||
static final EventBus _eBus = _exampleUtil.getEventBus();
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
* @LastEditors: Please set LastEditors
|
||||
* @LastEditTime: 2021-01-12 15:08:43
|
||||
*/
|
||||
import 'package:auto_updater/auto_updater.dart';
|
||||
import 'package:flutter_widget_from_html_core/flutter_widget_from_html_core.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:making_school_asignment_app/common/utils/app_upgrade/DownloadApk.dart';
|
||||
|
|
@ -202,6 +203,10 @@ class DownloadButton extends StatelessWidget {
|
|||
} catch (e) {
|
||||
print('进来更新报错$e');
|
||||
}
|
||||
} else if (deviceInfo == 'windows' && updateAppEvent.equipment == Equipment.windows) {
|
||||
await autoUpdater.setFeedURL(updateAppEvent.link);
|
||||
await autoUpdater.checkForUpdates();
|
||||
await autoUpdater.setScheduledCheckInterval(0);
|
||||
}
|
||||
}),
|
||||
child: quickText(!logic.loadingApk.value ? '立即体验' : '正在下载...', size: 16.sp, color: Colors.white, fontWeight: FontWeight.w500),
|
||||
|
|
|
|||
|
|
@ -80,4 +80,4 @@ class UpdateAppEvent {
|
|||
}
|
||||
|
||||
// 设备枚举
|
||||
enum Equipment { other, android, ios }
|
||||
enum Equipment { other, android, ios, windows }
|
||||
|
|
|
|||
|
|
@ -33,6 +33,9 @@ class UpgradeLogic extends GetxController with RequestToolMixin {
|
|||
} else if (Platform.isIOS) {
|
||||
deviceInfo = "ios";
|
||||
deviceType = 2;
|
||||
} else if (Platform.isWindows) {
|
||||
deviceInfo = "windows";
|
||||
deviceType = 3;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -439,6 +439,8 @@ class QuestionImageView extends HookWidget with EventBusMixin<BottomOperationBar
|
|||
return -1;
|
||||
}
|
||||
|
||||
int activePointers = 0;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final scrollControllerQuestion = useScrollController(); // 试题图片区域
|
||||
|
|
@ -551,6 +553,7 @@ class QuestionImageView extends HookWidget with EventBusMixin<BottomOperationBar
|
|||
|
||||
// 返回一个清理函数,在组件销毁时移除监听
|
||||
return () {
|
||||
activePointers = 0;
|
||||
listenVal.cancel();
|
||||
imageStream?.removeListener(imageStreamListener.value);
|
||||
};
|
||||
|
|
@ -577,16 +580,26 @@ class QuestionImageView extends HookWidget with EventBusMixin<BottomOperationBar
|
|||
boxShadow: [BoxShadow(color: Colors.grey.withOpacity(0.2), offset: Offset(-6.r, 1.r), blurRadius: 10.r, spreadRadius: 8.r)]),
|
||||
child: Listener(
|
||||
behavior: HitTestBehavior.opaque,
|
||||
onPointerDown: (PointerDownEvent event) {
|
||||
// 判断当前是否已经有触摸点,如果有则忽略该触摸事件
|
||||
|
||||
// 处理单个触摸点按下的逻辑
|
||||
activePointers++;
|
||||
},
|
||||
onPointerUp: (PointerUpEvent details) {
|
||||
// 处理单个触摸点抬起的逻辑
|
||||
// activePointers--;
|
||||
// globalPosition = null;
|
||||
activePointers--;
|
||||
|
||||
var imageScale = sateData.imageScale.value;
|
||||
if (imageScale == null || !annotationState.pen.value) return;
|
||||
vnHandWritings.value.add(null); // 增加空点以分隔不同的线段
|
||||
sateData.handwritings = vnHandWritings.value; // 添加笔迹数据
|
||||
},
|
||||
onPointerMove: (PointerMoveEvent event) {
|
||||
if (activePointers != 1) return;
|
||||
|
||||
var imageScale = sateData.imageScale.value;
|
||||
if (imageScale == null || !annotationState.pen.value) return;
|
||||
Offset localPosition = event.localPosition;
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
import FlutterMacOS
|
||||
import Foundation
|
||||
|
||||
import auto_updater_macos
|
||||
import connectivity_plus
|
||||
import package_info_plus
|
||||
import path_provider_foundation
|
||||
|
|
@ -12,6 +13,7 @@ import sqflite
|
|||
import url_launcher_macos
|
||||
|
||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||
AutoUpdaterMacosPlugin.register(with: registry.registrar(forPlugin: "AutoUpdaterMacosPlugin"))
|
||||
ConnectivityPlusPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlusPlugin"))
|
||||
FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
|
||||
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
|
||||
|
|
|
|||
|
|
@ -90,7 +90,10 @@ dependencies:
|
|||
flutter_echart: ^2.0.0
|
||||
url_launcher: ^6.1.11
|
||||
app_installer: ^1.1.0
|
||||
auto_updater: ^0.2.0
|
||||
permission_handler: ^11.0.1
|
||||
flutter_distributor: ^0.4.5
|
||||
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
|
|
|||
|
|
@ -6,11 +6,14 @@
|
|||
|
||||
#include "generated_plugin_registrant.h"
|
||||
|
||||
#include <auto_updater_windows/auto_updater_windows_plugin_c_api.h>
|
||||
#include <connectivity_plus/connectivity_plus_windows_plugin.h>
|
||||
#include <permission_handler_windows/permission_handler_windows_plugin.h>
|
||||
#include <url_launcher_windows/url_launcher_windows.h>
|
||||
|
||||
void RegisterPlugins(flutter::PluginRegistry* registry) {
|
||||
AutoUpdaterWindowsPluginCApiRegisterWithRegistrar(
|
||||
registry->GetRegistrarForPlugin("AutoUpdaterWindowsPluginCApi"));
|
||||
ConnectivityPlusWindowsPluginRegisterWithRegistrar(
|
||||
registry->GetRegistrarForPlugin("ConnectivityPlusWindowsPlugin"));
|
||||
PermissionHandlerWindowsPluginRegisterWithRegistrar(
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#
|
||||
|
||||
list(APPEND FLUTTER_PLUGIN_LIST
|
||||
auto_updater_windows
|
||||
connectivity_plus
|
||||
permission_handler_windows
|
||||
url_launcher_windows
|
||||
|
|
|
|||
|
|
@ -119,3 +119,13 @@ END
|
|||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
...
|
||||
|
||||
+/////////////////////////////////////////////////////////////////////////////
|
||||
+//
|
||||
+// WinSparkle
|
||||
+//
|
||||
|
||||
+// And verify signature using DSA public key:
|
||||
+DSAPub DSAPEM "../../dsa_pub.pem"
|
||||
|
|
|
|||
Loading…
Reference in New Issue