删除后合并

master
戴余标 2 years ago
parent 99c86eb158
commit e0012622d8

@ -35,6 +35,9 @@ class $AssetsIconsGen {
/// File path: assets/icons/privacy.png /// File path: assets/icons/privacy.png
AssetGenImage get privacy => const AssetGenImage('assets/icons/privacy.png'); AssetGenImage get privacy => const AssetGenImage('assets/icons/privacy.png');
/// File path: assets/icons/sms.png
AssetGenImage get sms => const AssetGenImage('assets/icons/sms.png');
/// File path: assets/icons/switch1.png /// File path: assets/icons/switch1.png
AssetGenImage get switch1 => const AssetGenImage('assets/icons/switch1.png'); AssetGenImage get switch1 => const AssetGenImage('assets/icons/switch1.png');

@ -1,90 +1,110 @@
import 'dart:async';
import 'package:bot_toast/bot_toast.dart'; import 'package:bot_toast/bot_toast.dart';
import 'package:call_log/call_log.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_background_service/flutter_background_service.dart'; import 'package:flutter_background_service/flutter_background_service.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_sms/flutter_sms.dart';
import 'package:get/get_navigation/src/root/get_material_app.dart'; import 'package:get/get_navigation/src/root/get_material_app.dart';
import 'package:power_logger/power_logger.dart';
import 'package:project_telephony/providers/user_provider.dart'; import 'package:project_telephony/providers/user_provider.dart';
import 'package:project_telephony/ui/tab_navigator.dart'; import 'package:project_telephony/ui/tab_navigator.dart';
import 'package:project_telephony/utils/hive_store.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:telephony/telephony.dart';
import 'package:project_telephony/utils/hive_store.dart';
// import 'package:telephony/telephony.dart'; void _sendSMS(String message, List<String> recipents) async {
String _result = await sendSMS(message: message, recipients: recipents)
// onBackgroundMessage(SmsMessage message) { .catchError((onError) {
// debugPrint("onBackgroundMessage called"); print(onError);
// } });
print(_result);
}
void main() async { void main() async {
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
// await initializeService(); FlutterError.onError = (details) {
LoggerData.addData(details);
FlutterError.presentError(details);
};
await initializeService();
WidgetsFlutterBinding.ensureInitialized();
runApp(const MyApp()); runApp(const MyApp());
// SystemUiOverlayStyle systemUiOverlayStyle = const SystemUiOverlayStyle(
// statusBarColor: Colors.transparent, //
// statusBarIconBrightness: Brightness.dark); //
} }
// Future<void> initializeService() async { Future<void> initializeService() async {
// final service = FlutterBackgroundService(); final service = FlutterBackgroundService();
// service.setNotificationInfo(title: '短信助手', content: '正在后台运行'); service.setNotificationInfo(title: '短信助手', content: '正在后台运行');
// await service.configure( await service.configure(
// androidConfiguration: AndroidConfiguration( androidConfiguration: AndroidConfiguration(
// onStart: onStart, onStart: onStart,
// autoStart: true, autoStart: true,
// isForegroundMode: true, isForegroundMode: true,
// ), ),
// iosConfiguration: IosConfiguration( iosConfiguration: IosConfiguration(
// autoStart: true, autoStart: true,
// onForeground: onStart, onForeground: onStart,
// onBackground: onIosBackground, onBackground: onIosBackground,
// ), ),
// ); );
// } }
void onIosBackground() { void onIosBackground() {
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
// print('FLUTTER BACKGROUND FETCH'); // print('FLUTTER BACKGROUND FETCH');
} }
// void onStart() { void onStart() {
// int flag = 0; int flag = 0;
// String? phoneNum, callState; String? phoneNum, callState;
// WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
//
// Timer.periodic(const Duration(seconds: 1), (timer) async { Timer.periodic(const Duration(seconds: 1), (timer) async {
// CallState state = await Telephony.instance.callState; CallState state = await Telephony.instance.callState;
// callState = state.name; callState = state.name;
// // print(callState!+"$flag"); print(callState!+" $flag");
// if (callState == "IDLE") { if (callState == "IDLE") {
// if (flag != 0) { if (flag != 0) {
// flag = 0; flag = 0;
// final Iterable<CallLogEntry> result = await CallLog.query(); // print("object");
// phoneNum = result.first.number; final Iterable<CallLogEntry> result = await CallLog.query();
// print(phoneNum); phoneNum = result.first.number;
// Phone.telephony.sendSms( // print(phoneNum);
// to: phoneNum!, // String message = "This is a test message!";
// message: "hello", // List<String> recipents = ["10000", "10086"];
// isMultipart: true, // String _result = await sendSMS(message: message, recipients: recipents, sendDirect: true)
// ); // .catchError((onError) {
// phoneNum = result.first.number; // print(onError);
// // print(phoneNum); // });
// Phone.telephony.sendSms( // print(_result);
// to: phoneNum!, phoneNum = result.first.number;
// message: "hello", print(phoneNum);
// isMultipart: true, final SmsSendStatusListener listener = (SendStatus status) {
// ); print(status);
// } };
// } else if (callState == "RINGING") { Phone.telephony.sendSms(
// flag++; to: phoneNum!,
// } else if (callState == "OFFHOOK") { message: "hello",
// flag++; statusListener: listener,
// } isMultipart: true,
// });
// } );
}
// class Phone { } else if (callState == "RINGING") {
// static Telephony telephony = Telephony.instance; flag++;
// } } else if (callState == "OFFHOOK") {
flag++;
}
});
}
class Phone {
static Telephony telephony = Telephony.instance;
}
class MyApp extends StatefulWidget { class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key); const MyApp({Key? key}) : super(key: key);
@ -95,7 +115,9 @@ class MyApp extends StatefulWidget {
class _MyAppState extends State<MyApp> { class _MyAppState extends State<MyApp> {
String _message = ""; String _message = "";
// This will not work as the instance will be replaced by
// the one in background.
final telephony = Telephony.instance;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@ -104,6 +126,7 @@ class _MyAppState extends State<MyApp> {
//Hive.initFlutter; //Hive.initFlutter;
await HiveStore.init(); await HiveStore.init();
}); });
final inbox = Telephony.instance.getInboxSms();
// JPush jPush=JPush(); // JPush jPush=JPush();
// jPush.setup( // jPush.setup(
// appKey: "", // appKey: "",
@ -154,7 +177,7 @@ class _MyAppState extends State<MyApp> {
ChangeNotifierProvider(create: (context) => UserProvider()), ChangeNotifierProvider(create: (context) => UserProvider()),
], ],
child: MediaQuery( child: MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance!.window), data: MediaQueryData.fromWindow(WidgetsBinding.instance.window),
child: ScreenUtilInit( child: ScreenUtilInit(
designSize: const Size(750, 1334), designSize: const Size(750, 1334),
builder: (context, child) { builder: (context, child) {

@ -0,0 +1,73 @@
import 'package:equatable/equatable.dart';
import 'package:json_annotation/json_annotation.dart';
part 'pay_model.g.dart';
@JsonSerializable()
class PayModel extends Equatable {
@JsonKey(name: 'alipay_trade_app_pay_response')
final AliPayTradeAppPayResponse aliPayTradeAppPayResponse;
final String sign;
@JsonKey(name: 'sign_type')
final String signType;
const PayModel({
required this.aliPayTradeAppPayResponse,
required this.sign,
required this.signType,
});
factory PayModel.fromJson(Map<String, dynamic> json) =>
_$PayModelFromJson(json);
@override
List<Object> get props => [aliPayTradeAppPayResponse, sign, signType];
}
@JsonSerializable()
class AliPayTradeAppPayResponse extends Equatable {
final String code;
final String msg;
@JsonKey(name: 'app_id')
final String appId;
@JsonKey(name: 'out_trade_no')
final String outTradeNo;
@JsonKey(name: 'trade_no')
final String tradeNo;
@JsonKey(name: 'total_amount')
final String totalAmount;
@JsonKey(name: 'seller_id')
final String sellerId;
final String charset;
final String timestamp;
const AliPayTradeAppPayResponse({
required this.code,
required this.msg,
required this.appId,
required this.outTradeNo,
required this.tradeNo,
required this.totalAmount,
required this.sellerId,
required this.charset,
required this.timestamp,
});
factory AliPayTradeAppPayResponse.fromJson(Map<String, dynamic> json) =>
_$AliPayTradeAppPayResponseFromJson(json);
@override
List<Object> get props {
return [
code,
msg,
appId,
outTradeNo,
tradeNo,
totalAmount,
sellerId,
charset,
timestamp,
];
}
}

@ -0,0 +1,28 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'pay_model.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
PayModel _$PayModelFromJson(Map<String, dynamic> json) => PayModel(
aliPayTradeAppPayResponse: AliPayTradeAppPayResponse.fromJson(
json['alipay_trade_app_pay_response'] as Map<String, dynamic>),
sign: json['sign'] as String,
signType: json['sign_type'] as String,
);
AliPayTradeAppPayResponse _$AliPayTradeAppPayResponseFromJson(
Map<String, dynamic> json) =>
AliPayTradeAppPayResponse(
code: json['code'] as String,
msg: json['msg'] as String,
appId: json['app_id'] as String,
outTradeNo: json['out_trade_no'] as String,
tradeNo: json['trade_no'] as String,
totalAmount: json['total_amount'] as String,
sellerId: json['seller_id'] as String,
charset: json['charset'] as String,
timestamp: json['timestamp'] as String,
);

@ -0,0 +1,37 @@
import 'package:equatable/equatable.dart';
import 'package:json_annotation/json_annotation.dart';
part 'wx_pay_model.g.dart';
@JsonSerializable()
class WxPayModel extends Equatable {
final String prepayId;
final String partnerId;
final String timeStamp;
final String nonceStr;
final String package;
final String sign;
factory WxPayModel.fromJson(Map<String, dynamic> json) =>
_$WxPayModelFromJson(json);
const WxPayModel({
required this.prepayId,
required this.partnerId,
required this.timeStamp,
required this.nonceStr,
required this.package,
required this.sign,
});
@override
List<Object?> get props => [
prepayId,
partnerId,
timeStamp,
nonceStr,
package,
sign,
];
}

@ -0,0 +1,16 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'wx_pay_model.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
WxPayModel _$WxPayModelFromJson(Map<String, dynamic> json) => WxPayModel(
prepayId: json['prepayId'] as String,
partnerId: json['partnerId'] as String,
timeStamp: json['timeStamp'] as String,
nonceStr: json['nonceStr'] as String,
package: json['package'] as String,
sign: json['sign'] as String,
);

@ -1,10 +1,19 @@
import 'package:call_log/call_log.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_sms/flutter_sms.dart';
import 'package:get_phone_number/get_phone_number.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:project_telephony/base/base_style.dart'; import 'package:project_telephony/base/base_style.dart';
import 'package:project_telephony/ui/home/content_details_page.dart'; import 'package:project_telephony/ui/home/content_details_page.dart';
import 'package:project_telephony/ui/widget/centertipsalterwidget.dart'; import 'package:project_telephony/ui/widget/centertipsalterwidget.dart';
import 'package:project_telephony/ui/widget/plone_back_button.dart'; import 'package:project_telephony/ui/widget/plone_back_button.dart';
import 'package:project_telephony/utils/headers.dart'; import 'package:project_telephony/utils/headers.dart';
import 'package:telephony/telephony.dart';
import '../user/privacy_rights_page.dart';
class ContentPage extends StatefulWidget { class ContentPage extends StatefulWidget {
final bool? isAnswer; //truefalse final bool? isAnswer; //truefalse
@ -60,15 +69,48 @@ class _ContentPageState extends State<ContentPage> {
textList.setAll(index, {textContent}); textList.setAll(index, {textContent});
}, },
)); ));
} else {} } else {
bool? permissionsGranted = await telephony.requestPhonePermissions;
// print(permissionsGranted);
// if(permissionsGranted!){
// print(content);
// // sendSms(content);
// telephony.sendSms(
// to: "13395740386",
// message: content,
// );
// }else{
// print(content);
// }
// print(content);
// // sendSms(content);
// telephony.sendSms(
// to: "13395740386",
// message: content,
// isMultipart: true
// );
List<String> recipents=["13395740386"];
_sendSMS(content,recipents);
// CallState state = await telephony.callState;
// print(state);
// DataState state1 = await telephony.cellularDataState;
// print(state1);
// String? operatorName = await telephony.networkOperatorName;
// print(operatorName);
// NetworkType type = await telephony.dataNetworkType;
// print(type);
// PhoneType type1 = await telephony.phoneType;
// print(type1);
String phoneNumber = await GetPhoneNumber().get();
print('getPhoneNumber result: $phoneNumber');
}
setState(() {}); setState(() {});
// print("这是数据" + textList[_s lect]); // print("这是数据" + textList[_s lect]);
// print(index); // print(index);
}, },
onLongPress: () { onLongPress: () {
setState(() {}); if (index != textList.length - 1) {
if (index == textList.length - 1) {
showDialog( showDialog(
context: context, context: context,
builder: (context) { builder: (context) {
@ -78,6 +120,7 @@ class _ContentPageState extends State<ContentPage> {
); );
}); });
} }
setState(() {});
}, },
child: Container( child: Container(
// width: 686.w, // width: 686.w,
@ -102,4 +145,13 @@ class _ContentPageState extends State<ContentPage> {
), ),
); );
} }
void _sendSMS(String message, List<String> recipients) async {
String _result = await sendSMS(
message: message, recipients: recipients, sendDirect: true)
.catchError((onError) {
print(onError);
});
print(_result);
}
} }

@ -132,7 +132,7 @@ class _LoginPageState extends State<LoginPage> {
data: {'phone': _phoneController.text, 'code': _smsCodeController.text}); data: {'phone': _phoneController.text, 'code': _smsCodeController.text});
if (base.code == 0) { if (base.code == 0) {
await UserTool.userProvider.setToken(base.data['token']); await UserTool.userProvider.setToken(base.data['token']);
Get.back(); Get.to(() => const TabNavigator());
} else { } else {
CloudToast.show(base.msg); CloudToast.show(base.msg);
} }

@ -5,6 +5,7 @@ import 'package:permission_handler/permission_handler.dart';
import 'package:permission_handler_platform_interface/permission_handler_platform_interface.dart'; import 'package:permission_handler_platform_interface/permission_handler_platform_interface.dart';
import 'package:project_telephony/base/base_style.dart'; import 'package:project_telephony/base/base_style.dart';
import 'package:project_telephony/ui/login/login_page.dart'; import 'package:project_telephony/ui/login/login_page.dart';
import 'package:project_telephony/ui/tab_navigator.dart';
import 'package:project_telephony/ui/user/members_page.dart'; import 'package:project_telephony/ui/user/members_page.dart';
import 'package:project_telephony/ui/user/privacy_rights_page.dart'; import 'package:project_telephony/ui/user/privacy_rights_page.dart';
import 'package:project_telephony/ui/widget/image_scaffold.dart'; import 'package:project_telephony/ui/widget/image_scaffold.dart';
@ -12,9 +13,15 @@ import 'package:project_telephony/ui/widget/plone_bottom.dart';
import 'package:project_telephony/ui/widget/plone_image_picker.dart'; import 'package:project_telephony/ui/widget/plone_image_picker.dart';
import 'package:project_telephony/utils/headers.dart'; import 'package:project_telephony/utils/headers.dart';
import 'package:project_telephony/utils/permissionutils.dart'; import 'package:project_telephony/utils/permissionutils.dart';
import 'package:provider/provider.dart';
import 'package:telephony/telephony.dart'; import 'package:telephony/telephony.dart';
import '../../constants/api.dart';
import '../../model/network/api_client.dart';
import '../../permission.dart'; import '../../permission.dart';
import '../../providers/user_provider.dart';
import '../../utils/toast/cloud_toast.dart';
import '../../utils/user_tool.dart';
import '../home/home_page.dart'; import '../home/home_page.dart';
class UserPage extends StatefulWidget { class UserPage extends StatefulWidget {
@ -26,13 +33,9 @@ class UserPage extends StatefulWidget {
final Telephony telephony = Telephony.instance; final Telephony telephony = Telephony.instance;
@override
void initState() {}
class _UserPageState extends State<UserPage> { class _UserPageState extends State<UserPage> {
bool vle = false; bool vle = false;
bool tooken = true; final userProvider = Provider.of<UserProvider>(Get.context!, listen: false);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -52,18 +55,27 @@ class _UserPageState extends State<UserPage> {
_getSwitch(Assets.icons.switch1.path, "功能开关", true), _getSwitch(Assets.icons.switch1.path, "功能开关", true),
_getSwitch(Assets.icons.privacy.path, "隐私政策", false), _getSwitch(Assets.icons.privacy.path, "隐私政策", false),
_getSwitch(Assets.icons.permissions.path, "权限说明", false), _getSwitch(Assets.icons.permissions.path, "权限说明", false),
_getSwitch(Assets.icons.sms.path, "短信标签", false),
// const Spacer(), // const Spacer(),
182.hb, 182.hb,
PloneBottom( userProvider.isLogin
border: false, ? PloneBottom(
onTap: () { border: false,
Get.to(() => const HomePage()); onTap: () async{
}, var cancel = CloudToast.loading;
textColor: const Color(0xFF1890FF), var base = await apiClient.request(API.manager.logout, showMessage: true);
color1: const Color(0xFFEBF5FF), if (base.code == 0) {
color2: const Color(0xFFEBF5FF), UserTool.userProvider.logout();
text: "退出登录", Get.offAll(const HomePage());
) }
cancel();
},
textColor: const Color(0xFF1890FF),
color1: const Color(0xFFEBF5FF),
color2: const Color(0xFFEBF5FF),
text: "退出登录",
)
: const SizedBox()
]), ]),
); );
} }
@ -82,7 +94,7 @@ class _UserPageState extends State<UserPage> {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text( Text(
tooken ? "登录/注册" : "xxxxx", userProvider.isLogin ? userProvider.userInfo.name : "登录/注册",
style: TextStyle( style: TextStyle(
fontSize: BaseStyle.fontSize48, fontSize: BaseStyle.fontSize48,
color: BaseStyle.color333333, color: BaseStyle.color333333,
@ -90,7 +102,7 @@ class _UserPageState extends State<UserPage> {
), ),
24.hb, 24.hb,
Text( Text(
tooken ? "登录获取更多信息" : "欢迎您登录短信帮手", userProvider.isLogin ? "欢迎您登录短信帮手" : "登录获取更多信息",
style: TextStyle( style: TextStyle(
fontSize: BaseStyle.fontSize28, fontSize: BaseStyle.fontSize28,
color: BaseStyle.color333333), color: BaseStyle.color333333),

@ -1,166 +1,166 @@
// import 'dart:async'; import 'dart:async';
// import 'dart:convert'; import 'dart:convert';
// import 'package:bot_toast/bot_toast.dart'; import 'package:bot_toast/bot_toast.dart';
// import 'package:cloud_car/model/pay/wx_pay_model.dart'; import 'package:dio/dio.dart';
// import 'package:cloud_car/utils/new_work/api_client.dart'; import 'package:flutter/foundation.dart';
// import 'package:cloud_car/utils/toast/cloud_toast.dart'; import 'package:fluwx/fluwx.dart';
// import 'package:dio/dio.dart'; import 'package:power_logger/power_logger.dart';
// import 'package:flutter/foundation.dart'; import 'package:project_telephony/utils/toast/cloud_toast.dart';
// import 'package:fluwx/fluwx.dart'; import 'package:tobias/tobias.dart';
// import 'package:power_logger/power_logger.dart';
// import 'package:tobias/tobias.dart'; import '../model/network/api_client.dart';
import '../model/pay/pay_model.dart';
// import '../model/pay/pay_model.dart'; import '../model/pay/wx_pay_model.dart';
// enum PAYTYPE { enum PAYTYPE {
// /// ///
// ali, ali,
// /// ///
// wx, wx,
// /// ///
// cash, cash,
// ///pos ///pos
// pos pos
// } }
// class PayUtil { class PayUtil {
// static final PayUtil _instance = PayUtil._(); static final PayUtil _instance = PayUtil._();
// factory PayUtil() => _instance; factory PayUtil() => _instance;
// PayUtil._(); PayUtil._();
// void resultSatus(String status) { void resultSatus(String status) {
// switch (status) { switch (status) {
// case '8000': case '8000':
// BotToast.showText(text: '正在处理中'); BotToast.showText(text: '正在处理中');
// break; break;
// case '4000': case '4000':
// BotToast.showText(text: '订单支付失败'); BotToast.showText(text: '订单支付失败');
// break; break;
// case '5000': case '5000':
// BotToast.showText(text: '重复请求'); BotToast.showText(text: '重复请求');
// break; break;
// case '6001': case '6001':
// BotToast.showText(text: ' 用户中途取消'); BotToast.showText(text: ' 用户中途取消');
// break; break;
// case '6002': case '6002':
// BotToast.showText(text: '网络连接出错'); BotToast.showText(text: '网络连接出错');
// break; break;
// case '6004': case '6004':
// BotToast.showText(text: '支付结果未知,请查询商户订单列表中订单的支付状态'); BotToast.showText(text: '支付结果未知,请查询商户订单列表中订单的支付状态');
// break; break;
// default: default:
// BotToast.showText(text: '其他支付错误'); BotToast.showText(text: '其他支付错误');
// break; break;
// } }
// } }
// String _resultStatus = ''; String _resultStatus = '';
// /// ///
// /// ///
// Future<bool> callAliPay(String order, {String? apiPath}) async { Future<bool> callAliPay(String order, {String? apiPath}) async {
// var install = await isAliPayInstalled(); var install = await isAliPayInstalled();
// if (!install) { if (!install) {
// BotToast.showText(text: '未安装支付宝!'); BotToast.showText(text: '未安装支付宝!');
// return false; return false;
// } }
// Map<dynamic, dynamic> result = {}; Map<dynamic, dynamic> result = {};
// try { try {
// result = await aliPay(order); result = await aliPay(order);
// } catch (e) { } catch (e) {
// if (kDebugMode) { if (kDebugMode) {
// print(e.toString()); print(e.toString());
// } }
// } }
// _resultStatus = result['resultStatus']; _resultStatus = result['resultStatus'];
// if (_resultStatus == '9000') { if (_resultStatus == '9000') {
// String res = result['result']; String res = result['result'];
// PayModel model = PayModel.fromJson(jsonDecode(res)); PayModel model = PayModel.fromJson(jsonDecode(res));
// if (apiPath != null) { if (apiPath != null) {
// bool confirmResult = await _confirmPayResult( bool confirmResult = await _confirmPayResult(
// apiPath, model.aliPayTradeAppPayResponse.outTradeNo); apiPath, model.aliPayTradeAppPayResponse.outTradeNo);
// return confirmResult; return confirmResult;
// } else { } else {
// CloudToast.show('支付成功'); CloudToast.show('支付成功');
// return true; return true;
// } }
// } else { } else {
// resultSatus(_resultStatus); resultSatus(_resultStatus);
// return false; return false;
// } }
// } }
// Future<bool> _confirmPayResult(String path, String code) async { Future<bool> _confirmPayResult(String path, String code) async {
// try { try {
// int status = 0; int status = 0;
// for (var i = 0; i < 3; i++) { for (var i = 0; i < 3; i++) {
// await Future.delayed(const Duration(milliseconds: 1000), () async { await Future.delayed(const Duration(milliseconds: 1000), () async {
// Response response = await apiClient.dio.get(path, queryParameters: { Response response = await apiClient.dio.get(path, queryParameters: {
// "code": code, "code": code,
// }); });
// status = response.data['status'] as int; status = response.data['status'] as int;
// }); });
// if (status == 2) { if (status == 2) {
// break; break;
// } }
// } }
// if (status == 2) { if (status == 2) {
// BotToast.showText(text: '交易成功'); BotToast.showText(text: '交易成功');
// return true; return true;
// } else { } else {
// BotToast.showText(text: '交易失败 错误码$status'); BotToast.showText(text: '交易失败 错误码$status');
// return false; return false;
// } }
// } catch (e) { } catch (e) {
// BotToast.showText(text: '网络请求错误'); BotToast.showText(text: '网络请求错误');
// LoggerData.addData(e); LoggerData.addData(e);
// return false; return false;
// } }
// } }
// /// ///
// StreamSubscription? _wxPayStream; StreamSubscription? _wxPayStream;
// void wxPayAddListener( void wxPayAddListener(
// {required VoidCallback paySuccess, {required VoidCallback paySuccess,
// Function(BaseWeChatResponse)? payError}) { Function(BaseWeChatResponse)? payError}) {
// _wxPayStream = weChatResponseEventHandler.listen((event) { _wxPayStream = weChatResponseEventHandler.listen((event) {
// if (kDebugMode) { if (kDebugMode) {
// print('errorCode:${event.errCode} errorStr:${event.errStr}'); print('errorCode:${event.errCode} errorStr:${event.errStr}');
// } }
// if (event.errCode == 0) { if (event.errCode == 0) {
// paySuccess(); paySuccess();
// } else { } else {
// LoggerData.addData( LoggerData.addData(
// 'errorCode:${event.errCode} errorStr:${event.errStr ?? '支付失败'}'); 'errorCode:${event.errCode} errorStr:${event.errStr ?? '支付失败'}');
// CloudToast.show(event.errStr ?? '支付失败'); CloudToast.show(event.errStr ?? '支付失败');
// if (payError != null) payError(event); if (payError != null) payError(event);
// //payError == null ? null : payError(event); //payError == null ? null : payError(event);
// } }
// }); });
// } }
// void removeWxPayListener() { void removeWxPayListener() {
// _wxPayStream?.cancel(); _wxPayStream?.cancel();
// } }
// Future callWxPay({ Future callWxPay({
// required WxPayModel payModel, required WxPayModel payModel,
// }) async { }) async {
// await payWithWeChat( await payWithWeChat(
// appId: 'wx9bc3ffb23a749254', appId: 'wx9bc3ffb23a749254',
// partnerId: payModel.partnerId, partnerId: payModel.partnerId,
// prepayId: payModel.prepayId, prepayId: payModel.prepayId,
// packageValue: payModel.package, packageValue: payModel.package,
// nonceStr: payModel.nonceStr, nonceStr: payModel.nonceStr,
// timeStamp: int.parse(payModel.timeStamp), timeStamp: int.parse(payModel.timeStamp),
// sign: payModel.sign); sign: payModel.sign);
// } }
// } }

@ -36,13 +36,6 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.8.2" version: "2.8.2"
auto_size_text:
dependency: transitive
description:
name: auto_size_text
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.0"
auto_size_text_pk: auto_size_text_pk:
dependency: transitive dependency: transitive
description: description:
@ -239,27 +232,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.2.0" version: "2.2.0"
device_info:
dependency: transitive
description:
name: device_info
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.3"
device_info_platform_interface:
dependency: transitive
description:
name: device_info_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
device_info_plus: device_info_plus:
dependency: "direct main" dependency: "direct main"
description: description:
name: device_info_plus name: device_info_plus
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "4.0.1" version: "2.2.0"
device_info_plus_linux: device_info_plus_linux:
dependency: transitive dependency: transitive
description: description:
@ -294,7 +273,7 @@ packages:
name: device_info_plus_windows name: device_info_plus_windows
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.1" version: "2.1.1"
dio: dio:
dependency: transitive dependency: transitive
description: description:
@ -322,7 +301,7 @@ packages:
name: ffi name: ffi
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.1" version: "1.2.1"
file: file:
dependency: transitive dependency: transitive
description: description:
@ -404,7 +383,7 @@ packages:
name: flutter_lints name: flutter_lints
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.4" version: "2.0.1"
flutter_native_splash: flutter_native_splash:
dependency: "direct dev" dependency: "direct dev"
description: description:
@ -426,6 +405,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "5.5.3+2" version: "5.5.3+2"
flutter_sms:
dependency: "direct main"
description:
name: flutter_sms
url: "https://pub.dartlang.org"
source: hosted
version: "2.3.3"
flutter_test: flutter_test:
dependency: "direct dev" dependency: "direct dev"
description: flutter description: flutter
@ -457,6 +443,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "4.6.5" version: "4.6.5"
get_phone_number:
dependency: "direct main"
description:
name: get_phone_number
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
glob: glob:
dependency: transitive dependency: transitive
description: description:
@ -499,6 +492,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.0" version: "1.1.0"
hive_generator:
dependency: "direct dev"
description:
name: hive_generator
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.3"
http: http:
dependency: transitive dependency: transitive
description: description:
@ -562,6 +562,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.6.1" version: "2.6.1"
import_sorter:
dependency: "direct dev"
description:
name: import_sorter
url: "https://pub.dartlang.org"
source: hosted
version: "4.6.0"
intl: intl:
dependency: transitive dependency: transitive
description: description:
@ -603,7 +610,7 @@ packages:
name: lints name: lints
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.1" version: "2.0.0"
logger: logger:
dependency: transitive dependency: transitive
description: description:
@ -674,6 +681,48 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.2" version: "2.0.2"
package_info_plus:
dependency: transitive
description:
name: package_info_plus
url: "https://pub.dartlang.org"
source: hosted
version: "1.4.2"
package_info_plus_linux:
dependency: transitive
description:
name: package_info_plus_linux
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.5"
package_info_plus_macos:
dependency: transitive
description:
name: package_info_plus_macos
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0"
package_info_plus_platform_interface:
dependency: transitive
description:
name: package_info_plus_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.2"
package_info_plus_web:
dependency: transitive
description:
name: package_info_plus_web
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.5"
package_info_plus_windows:
dependency: transitive
description:
name: package_info_plus_windows
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.5"
path: path:
dependency: transitive dependency: transitive
description: description:
@ -729,7 +778,7 @@ packages:
name: path_provider_windows name: path_provider_windows
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.1" version: "2.0.7"
permission_handler: permission_handler:
dependency: "direct main" dependency: "direct main"
description: description:
@ -799,7 +848,7 @@ packages:
name: power_logger name: power_logger
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.2.0" version: "1.2.2"
process: process:
dependency: transitive dependency: transitive
description: description:
@ -1008,6 +1057,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
tint:
dependency: transitive
description:
name: tint
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
tobias: tobias:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1029,6 +1085,62 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.4" version: "2.0.4"
url_launcher:
dependency: transitive
description:
name: url_launcher
url: "https://pub.dartlang.org"
source: hosted
version: "6.1.5"
url_launcher_android:
dependency: transitive
description:
name: url_launcher_android
url: "https://pub.dartlang.org"
source: hosted
version: "6.0.17"
url_launcher_ios:
dependency: transitive
description:
name: url_launcher_ios
url: "https://pub.dartlang.org"
source: hosted
version: "6.0.17"
url_launcher_linux:
dependency: transitive
description:
name: url_launcher_linux
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.1"
url_launcher_macos:
dependency: transitive
description:
name: url_launcher_macos
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.1"
url_launcher_platform_interface:
dependency: transitive
description:
name: url_launcher_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
url_launcher_web:
dependency: transitive
description:
name: url_launcher_web
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.13"
url_launcher_windows:
dependency: transitive
description:
name: url_launcher_windows
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.1"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
@ -1070,7 +1182,7 @@ packages:
name: win32 name: win32
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.7.0" version: "2.6.1"
xdg_directories: xdg_directories:
dependency: transitive dependency: transitive
description: description:
@ -1094,4 +1206,4 @@ packages:
version: "3.1.1" version: "3.1.1"
sdks: sdks:
dart: ">=2.17.0 <3.0.0" dart: ">=2.17.0 <3.0.0"
flutter: ">=3.0.0" flutter: ">=2.10.0"

@ -18,7 +18,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.0.0+1 version: 1.0.0+1
environment: environment:
sdk: ">=2.15.0 <3.0.0" sdk: ">=2.16.0 <3.0.0"
# Dependencies specify other packages that your package needs in order to work. # Dependencies specify other packages that your package needs in order to work.
# To automatically upgrade your package dependencies to the latest versions # To automatically upgrade your package dependencies to the latest versions
@ -69,10 +69,16 @@ dependencies:
# model生成 # model生成
json_annotation: ^4.6.0 json_annotation: ^4.6.0
permission_handler_platform_interface: ^3.7.0 permission_handler_platform_interface: ^3.7.0
power_logger: ^1.2.0
provider: ^6.0.3 provider: ^6.0.3
equatable: any equatable: any
#日志输出
power_logger: ^1.2.2
# 短信
flutter_sms: ^2.3.3
get_phone_number: ^2.0.1
# flutter_telephony: any
# # jdk # # jdk
# jverify: ^2.2.5 # jverify: ^2.2.5
## pub 集成 ## pub 集成
@ -88,14 +94,17 @@ dev_dependencies:
# package. See that file for information about deactivating specific lint # package. See that file for information about deactivating specific lint
# rules and activating additional ones. # rules and activating additional ones.
# test: ^1.21.4 # test: ^1.21.4
flutter_lints: ^1.0.0 #导入包整理
import_sorter: ^4.5.1
hive_generator: ^1.1.0
#model自动生成 #model自动生成
json_serializable: ^6.1.3 json_serializable: ^6.1.3
build_runner: ^2.0.2 build_runner: ^2.0.2
yaml: ^3.1.0 yaml: ^3.1.0
pub_semver: ^2.1.0 pub_semver: ^2.1.0
flutter_gen_runner: ^4.1.3 flutter_gen_runner: ^4.1.3
# patgh: ^1.8.1 flutter_lints: ^2.0.0
# patgh: ^1.8.1
#脚本工具 #脚本工具
grinder: ^0.9.1 grinder: ^0.9.1
flutter_native_splash: ^1.1.8+4 flutter_native_splash: ^1.1.8+4

Loading…
Cancel
Save