登陆跳转

main
zhuce 2024-03-12 20:31:03 +08:00
parent b920194baa
commit 135caf5adc
6 changed files with 254 additions and 36 deletions

View File

@ -13,15 +13,24 @@ PODS:
- device_info_plus (0.0.1): - device_info_plus (0.0.1):
- Flutter - Flutter
- Flutter (1.0.0) - Flutter (1.0.0)
- getuiflut (0.0.1):
- Flutter
- GTSDK
- GTCommonSDK (3.1.1.0):
- ZXSDK
- GTSDK (3.0.5.0):
- GTCommonSDK (> 3.0.9.0)
- shared_preferences_foundation (0.0.1): - shared_preferences_foundation (0.0.1):
- Flutter - Flutter
- FlutterMacOS - FlutterMacOS
- ZXSDK (3.2.5)
DEPENDENCIES: DEPENDENCIES:
- amap_flutter_location (from `.symlinks/plugins/amap_flutter_location/ios`) - amap_flutter_location (from `.symlinks/plugins/amap_flutter_location/ios`)
- amap_flutter_map (from `.symlinks/plugins/amap_flutter_map/ios`) - amap_flutter_map (from `.symlinks/plugins/amap_flutter_map/ios`)
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
- Flutter (from `Flutter`) - Flutter (from `Flutter`)
- getuiflut (from `.symlinks/plugins/getuiflut/ios`)
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
SPEC REPOS: SPEC REPOS:
@ -29,6 +38,9 @@ SPEC REPOS:
- AMap3DMap - AMap3DMap
- AMapFoundation - AMapFoundation
- AMapLocation - AMapLocation
- GTCommonSDK
- GTSDK
- ZXSDK
EXTERNAL SOURCES: EXTERNAL SOURCES:
amap_flutter_location: amap_flutter_location:
@ -39,6 +51,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/device_info_plus/ios" :path: ".symlinks/plugins/device_info_plus/ios"
Flutter: Flutter:
:path: Flutter :path: Flutter
getuiflut:
:path: ".symlinks/plugins/getuiflut/ios"
shared_preferences_foundation: shared_preferences_foundation:
:path: ".symlinks/plugins/shared_preferences_foundation/darwin" :path: ".symlinks/plugins/shared_preferences_foundation/darwin"
@ -49,8 +63,12 @@ SPEC CHECKSUMS:
AMapFoundation: 9885c48fc3a78fdfb84a0299a2293e56ea3c9fec AMapFoundation: 9885c48fc3a78fdfb84a0299a2293e56ea3c9fec
AMapLocation: 5248aec2455ebb5d104b367813c946430a2ee033 AMapLocation: 5248aec2455ebb5d104b367813c946430a2ee033
device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6 device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
getuiflut: 8628ba2b64a738a847a07d2b67e0ac305778e2ee
GTCommonSDK: 2be8c2d5b094929f81b64dba8767bf110bae78de
GTSDK: cc04d169c5c6cb8f8884849153eaac9e6ccfdd7c
shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695 shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695
ZXSDK: 414bed508b670437a9bdf7c75d49816b8cb7b2d4
PODFILE CHECKSUM: 819463e6a0290f5a72f145ba7cde16e8b6ef0796 PODFILE CHECKSUM: 819463e6a0290f5a72f145ba7cde16e8b6ef0796

View File

@ -1,9 +1,15 @@
import 'dart:convert';
import 'package:autosos_flutter/pages/home/home_page.dart';
import 'package:autosos_flutter/util/sp_util.dart';
import 'package:autosos_flutter/util/xhttp.dart'; import 'package:autosos_flutter/util/xhttp.dart';
import 'package:flutter/material.dart';
class LoginApi { class LoginApi {
static XHttp xHttp = XHttp.getInstance(); static XHttp xHttp = XHttp.getInstance();
static SPUtil spUtil = SPUtil();
static void login(int type, String username, String password, String code, static void login(BuildContext context,int type, String username, String password, String code,
String cid, String openid, String unionid) async { String cid, String openid, String unionid) async {
var data = { var data = {
"type": type, "type": type,
@ -15,7 +21,17 @@ class LoginApi {
"wx_unionid": unionid "wx_unionid": unionid
}; };
var headers = {'Content-Type': 'application/x-www-form-urlencoded'}; var headers = {'Content-Type': 'application/x-www-form-urlencoded'};
var post = await xHttp.post("/v2/auth/get-access-token", data, headers); Result response = await xHttp.post("/v2/auth/get-access-token", data, headers);
// print(post); var resData = response.data;
var resCode = resData['code'];
if(resCode==1){
var accessToken = resData['data']['access_token'];
spUtil.setString("accessToken", accessToken);
if(!context.mounted) return;
Navigator.of(context).push(MaterialPageRoute(builder: (context)=> const HomePage()));
}else{
var msg = resData['message'];
Toast.show(msg);
}
} }
} }

View File

@ -0,0 +1,5 @@
class GetuiConstant{
static const String appId = "D3cqMVd0aA6nYsVx9Gdgo9";
static const String appKey = "OtBVS1PjCy5aLWNVM3aQY1";
static const String appSecret = "juiYAn4XXc6BPVAI6DQlh8";
}

View File

@ -1,18 +1,30 @@
import 'dart:io';
import 'package:autosos_flutter/config/theme_colors.dart'; import 'package:autosos_flutter/config/theme_colors.dart';
import 'package:autosos_flutter/pages/home/home_page.dart';
import 'package:autosos_flutter/pages/login/login_page.dart'; import 'package:autosos_flutter/pages/login/login_page.dart';
import 'package:autosos_flutter/util/sp_util.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:getuiflut/getuiflut.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
import 'config/getui_constant.dart';
void main() { void main() {
SharedPreferences.setMockInitialValues({}); SharedPreferences.setMockInitialValues({});
runApp(const MyApp()); runApp(const MyApp());
} }
class MyApp extends StatelessWidget { class MyApp extends StatefulWidget {
const MyApp({super.key}); const MyApp({super.key});
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
// This widget is the root of your application. // This widget is the root of your application.
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -26,4 +38,160 @@ class MyApp extends StatelessWidget {
builder: EasyLoading.init(), builder: EasyLoading.init(),
); );
} }
String _platformVersion = 'Unknown';
String _payloadInfo = 'Null';
String _userMsg = "";
String _notificationState = "";
String _getClientId = "";
String _getDeviceToken = "";
String _onReceivePayload = "";
String _onReceiveNotificationResponse = "";
String _onAppLinkPayLoad = "";
SPUtil spUtil = SPUtil();
@override
void initState() {
super.initState();
initPlatformState();
}
// Platform messages are asynchronous, so we initialize in an async method.
Future<void> initPlatformState() async {
String platformVersion;
String payloadInfo = "default";
String notificationState = "default";
// Platform messages may fail, so we use a try/catch PlatformException.
if (Platform.isIOS) {
getSdkVersion();
Getuiflut().startSdk(
appId: GetuiConstant.appId,
appKey: GetuiConstant.appKey,
appSecret: GetuiConstant.appSecret);
}
try {
platformVersion = await Getuiflut.platformVersion;
print('platformVersion' + platformVersion);
} on PlatformException {
platformVersion = 'Failed to get platform version.';
}
// If the widget was removed from the tree while the asynchronous platform
// message was in flight, we want to discard the reply rather than calling
// setState to update our non-existent appearance.
if (!mounted) return;
setState(() {
_platformVersion = platformVersion;
_payloadInfo = payloadInfo;
_notificationState = notificationState;
});
Getuiflut().addEventHandler(onReceiveClientId: (String message) async {
print("flutter onReceiveClientId: $message");
spUtil.setString("clientId", message);
setState(() {
_getClientId = "ClientId: $message";
});
}, onReceiveMessageData: (Map<String, dynamic> msg) async {
print("flutter onReceiveMessageData: $msg");
setState(() {
_payloadInfo = msg['payload'];
});
}, onNotificationMessageArrived: (Map<String, dynamic> msg) async {
print("flutter onNotificationMessageArrived: $msg");
setState(() {
_notificationState = 'Arrived';
});
}, onNotificationMessageClicked: (Map<String, dynamic> msg) async {
print("flutter onNotificationMessageClicked: $msg");
setState(() {
_notificationState = 'Clicked';
});
}, onTransmitUserMessageReceive: (Map<String, dynamic> msg) async {
print("flutter onTransmitUserMessageReceive:$msg");
setState(() {
_userMsg = msg["msg"];
});
}, onRegisterDeviceToken: (String message) async {
print("flutter onRegisterDeviceToken: $message");
setState(() {
_getDeviceToken = "$message";
});
}, onReceivePayload: (Map<String, dynamic> message) async {
print("flutter onReceivePayload: $message");
setState(() {
_onReceivePayload = "$message";
});
}, onReceiveNotificationResponse: (Map<String, dynamic> message) async {
print("flutter onReceiveNotificationResponse: $message");
setState(() {
_onReceiveNotificationResponse = "$message";
});
}, onAppLinkPayload: (String message) async {
print("flutter onAppLinkPayload: $message");
setState(() {
_onAppLinkPayLoad = "$message";
});
}, onPushModeResult: (Map<String, dynamic> message) async {
print("flutter onPushModeResult: $message");
}, onSetTagResult: (Map<String, dynamic> message) async {
print("flutter onSetTagResult: $message");
}, onAliasResult: (Map<String, dynamic> message) async {
print("flutter onAliasResult: $message");
}, onQueryTagResult: (Map<String, dynamic> message) async {
print("flutter onQueryTagResult: $message");
}, onWillPresentNotification: (Map<String, dynamic> message) async {
print("flutter onWillPresentNotification: $message");
}, onOpenSettingsForNotification: (Map<String, dynamic> message) async {
print("flutter onOpenSettingsForNotification: $message");
}, onGrantAuthorization: (String granted) async {
print("flutter onGrantAuthorization: $granted");
}, onLiveActivityResult: (Map<String, dynamic> message) async {
print("flutter onLiveActivityResult: $message");
});
}
Future<void> initGetuiSdk() async {
try {
Getuiflut.initGetuiSdk;
} catch (e) {
e.toString();
}
}
Future<void> getClientId() async {
String getClientId;
try {
getClientId = await Getuiflut.getClientId;
print(getClientId);
} catch (e) {
print(e.toString());
}
}
Future<void> getSdkVersion() async {
String ver;
try {
ver = await Getuiflut.sdkVersion;
print(ver);
} catch (e) {
print(e.toString());
}
}
Future<void> getLaunchNotification() async {
Map info;
try {
info = await Getuiflut.getLaunchNotification;
print(info);
} catch (e) {
print(e.toString());
}
}
} }

View File

@ -16,10 +16,12 @@ class HomePage extends StatefulWidget {
class _HomePageState extends State<HomePage> { class _HomePageState extends State<HomePage> {
bool enabled = false; bool enabled = false;
late AMapController _mapController; late AMapController _mapController;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
automaticallyImplyLeading: false,
title: const Text( title: const Text(
"首页", "首页",
style: TextStyle(color: Colors.white), style: TextStyle(color: Colors.white),
@ -34,14 +36,17 @@ class _HomePageState extends State<HomePage> {
fit: BoxFit.cover)), fit: BoxFit.cover)),
)), )),
backgroundColor: const Color(0xFFF3F3F3), backgroundColor: const Color(0xFFF3F3F3),
body: Padding( body: PopScope(
padding: const EdgeInsets.all(10), canPop: false,
child: Column( child: Padding(
children: [ padding: const EdgeInsets.all(10),
buildTopWidget(), child: Column(
buildMiddleWidget(), children: [
buildBottomWidget() buildTopWidget(),
], buildMiddleWidget(),
buildBottomWidget()
],
),
), ),
)); ));
} }
@ -236,7 +241,7 @@ class _HomePageState extends State<HomePage> {
circleStrokeColor: Colors.blue, circleStrokeColor: Colors.blue,
circleStrokeWidth: 1, circleStrokeWidth: 1,
), ),
onMapCreated: (AMapController controller){ onMapCreated: (AMapController controller) {
setState(() { setState(() {
_mapController = controller; _mapController = controller;
getApprovalNumber(); getApprovalNumber();
@ -244,33 +249,36 @@ class _HomePageState extends State<HomePage> {
}, },
); );
return Expanded( return Expanded(
child: Stack( child: Stack(
children: [ children: [
Container( Container(
margin: const EdgeInsets.only(top: 10,bottom: 10), margin: const EdgeInsets.only(top: 10, bottom: 10),
decoration: const BoxDecoration( decoration: const BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.all(Radius.circular(5))), borderRadius: BorderRadius.all(Radius.circular(5))),
child: map, child: map,
),
Positioned(
bottom: 20,
right: 20,
child: Image.asset(
"images/3.0x/current_location.png",
width: 30,
height: 30,
), ),
Positioned( )
bottom: 20, ],
right: 20, ));
child: Image.asset("images/3.0x/current_location.png",width: 30,height: 30,),
)
],
)
);
} }
/// ///
void getApprovalNumber() async { void getApprovalNumber() async {
// //
String? mapContentApprovalNumber = String? mapContentApprovalNumber =
await _mapController.getMapContentApprovalNumber(); await _mapController.getMapContentApprovalNumber();
// //
String? satelliteImageApprovalNumber = String? satelliteImageApprovalNumber =
await _mapController.getSatelliteImageApprovalNumber(); await _mapController.getSatelliteImageApprovalNumber();
print('地图审图号(普通地图): $mapContentApprovalNumber'); print('地图审图号(普通地图): $mapContentApprovalNumber');
print('地图审图号(卫星地图): $satelliteImageApprovalNumber'); print('地图审图号(卫星地图): $satelliteImageApprovalNumber');
} }

View File

@ -1,4 +1,5 @@
import 'package:autosos_flutter/api/login_api.dart'; import 'package:autosos_flutter/api/login_api.dart';
import 'package:autosos_flutter/util/sp_util.dart';
import 'package:autosos_flutter/util/xhttp.dart'; import 'package:autosos_flutter/util/xhttp.dart';
import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -15,6 +16,7 @@ class LoginPage extends StatefulWidget {
class _LoginPageState extends State<LoginPage> { class _LoginPageState extends State<LoginPage> {
final TextEditingController _unameController = TextEditingController(); final TextEditingController _unameController = TextEditingController();
final TextEditingController _pwdController = TextEditingController(); final TextEditingController _pwdController = TextEditingController();
SPUtil spUtil = SPUtil();
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
@ -77,7 +79,7 @@ class _LoginPageState extends State<LoginPage> {
Padding( Padding(
padding: const EdgeInsets.all(20), padding: const EdgeInsets.all(20),
child: GestureDetector( child: GestureDetector(
onTap:()=>_login(), onTap:()=>_login(context),
child: Container( child: Container(
padding: const EdgeInsets.all(12), padding: const EdgeInsets.all(12),
margin: const EdgeInsets.only(top: 40), margin: const EdgeInsets.only(top: 40),
@ -99,9 +101,10 @@ class _LoginPageState extends State<LoginPage> {
); );
} }
void _login() async{ void _login(BuildContext context) async{
String username = _unameController.text; String username = _unameController.text;
String password = _pwdController.text; String password = _pwdController.text;
LoginApi.login(1, username, password, "", "", "", ""); String cid = spUtil.get("clientId");
LoginApi.login(context,1, username, password, "", cid, "", "");
} }
} }