| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- import 'dart:async';
- import 'dart:io';
- import 'package:fast/constants.dart';
- import 'package:fast/model/model.dart';
- import 'package:fast/utils/api.dart';
- import 'package:fast/utils/global.dart';
- import 'package:fast/utils/http_utils.dart';
- import 'package:fast/utils/size_fit.dart';
- import 'package:fast/utils/storage.dart';
- import 'package:fast/view/component/header.dart';
- import 'package:fast/view/component/toast.dart';
- import 'package:fast/view/invite_code.dart';
- import 'package:fast/view/phone.dart';
- import 'package:fast/view/phone_code.dart';
- import 'package:flutter/material.dart';
- import 'package:fluwx/fluwx.dart';
- import 'package:get/get.dart';
- import 'package:sign_in_with_apple/sign_in_with_apple.dart';
- class Login extends StatefulWidget {
- const Login({Key? key}) : super(key: key);
- @override
- State<Login> createState() => _LoginState();
- }
- class _LoginState extends State<Login> {
- StreamSubscription? subscription;
- bool showSocial = false;
- @override
- void initState() {
- showSocial = Global().thirdLogin;
- initWxApi();
- getConfig();
- super.initState();
- }
- Future getConfig() async {
- Map<String, dynamic> data = await HttpUtils.get(Api.serverConfig);
- Global().thirdLogin = data['thirdparty_login'];
- Global().pushEnable = data['push_enable'];
- Global().payEnable = data['pay_enable'];
- setState(() {
- showSocial = data['thirdparty_login'];
- });
- }
- Future initWxApi() async {
- bool isSuccess = await registerWxApi(
- appId: 'wxa8557217acf4f532',
- universalLink: 'https://api.fast.liveplus.fun/');
- if (isSuccess) {
- subscription = weChatResponseEventHandler.listen((event) {
- if (event is WeChatPaymentResponse) {
- } else if (event is WeChatAuthResponse) {
- print('9527');
- login(event.code);
- } else if (event is WeChatShareResponse) {}
- });
- }
- }
- @override
- void dispose() {
- if (subscription != null) {
- subscription!.cancel();
- }
- super.dispose();
- }
- Future login(code) async {
- Map<String, dynamic> data = await HttpUtils.post(Api.outhLogin, data: {
- "app_version": "1.0",
- "client_type": Platform.isAndroid ? "ANDROID" : "IOS",
- "client_version": "1.0",
- "type": "WX",
- "code": code
- });
- UserBean user = UserBean.fromJson(data);
- Global().userBean = user;
- Global().token = data['token'];
- Global().balance = user.rjvBalance;
- if (user.inputInviteCode) {
- //没得验证码绑定,可以输入一波
- //首次注册登录,弹获得多少逆龄石
- showRegisterSuccessToast();
- Timer(const Duration(milliseconds: 1300), () {
- Get.to(() => const InviteCode());
- Global().showLogin = false;
- Global().mainPage!.showIndex();
- Global().mainPage!.login();
- StorageUtil().prefs!.setString("token", data['token']);
- });
- } else {
- Global().showLogin = false;
- Global().mainPage!.showIndex();
- Global().mainPage!.login();
- StorageUtil().prefs!.setString("token", data['token']);
- }
- }
- showRegisterSuccessToast() {
- if (mounted) {
- showDialog(
- context: context,
- barrierDismissible: false,
- barrierColor: Colors.transparent,
- builder: (BuildContext context) {
- return Toast(
- title: '成功注册',
- content: Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- Text(
- '+9',
- style: TextStyle(
- color: Colors.white,
- fontSize: 16.px,
- fontWeight: FontWeight.w800,
- fontFamily: 'Exo2',
- decoration: TextDecoration.none),
- ),
- SizedBox(
- width: 3.px,
- ),
- Image.asset(
- 'assets/images/stone.png',
- width: 24.px,
- height: 24.px,
- )
- ],
- ),
- );
- });
- }
- }
- Future wxLogin() async {
- sendWeChatAuth(scope: 'snsapi_userinfo');
- // if (Platform.isAndroid) {
- // Global().token =
- // 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJhY2NvdW50Iiwic3ViIjoiOGUyMzAxM2UxMDY3NjU2ODc0ZDQ2ZjNmNDk0OWMyMGIiLCJpc3MiOiJDT0RFUEFBUy5DT00iLCJuaWNrbmFtZSI6IkzDqW9uIiwidHlwIjoiQmVhcmVyIiwic2Vzc2lvbl9zdGF0ZSI6ImRmNzI2NDFiZWQ4NjhhZDcyNmJmNmU0YzNhYWU2NTgwIiwiZXhwIjoxNjgyOTE0MzE5LCJpYXQiOjE2NTEzNzgzMTl9.2j7rR0ZuaolTwluwp9tdGfvPlboV46yJbjY2baKNh7w';
- // Global().showLogin = false;
- // Global().mainPage!.login();
- // StorageUtil().prefs!.setString("token", Global().token);
- // // sendWeChatAuth(scope: 'snsapi_userinfo');
- // } else {
- // Global().token =
- // 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJhY2NvdW50Iiwic3ViIjoiOGUyMzAxM2UxMDY3NjU2ODc0ZDQ2ZjNmNDk0OWMyMGIiLCJpc3MiOiJDT0RFUEFBUy5DT00iLCJuaWNrbmFtZSI6IkzDqW9uIiwidHlwIjoiQmVhcmVyIiwic2Vzc2lvbl9zdGF0ZSI6ImRmNzI2NDFiZWQ4NjhhZDcyNmJmNmU0YzNhYWU2NTgwIiwiZXhwIjoxNjgyOTE0MzE5LCJpYXQiOjE2NTEzNzgzMTl9.2j7rR0ZuaolTwluwp9tdGfvPlboV46yJbjY2baKNh7w';
- // Global().showLogin = false;
- // Global().mainPage!.login();
- // StorageUtil().prefs!.setString("token", Global().token);
- // }
- }
- @override
- Widget build(BuildContext context) {
- SizeFit.initialize(context);
- return Material(
- child: Container(
- color: kBgColor,
- child: Column(
- children: [
- Header(
- isIndexPage: false,
- ),
- Container(
- margin: EdgeInsets.only(top: 30.px),
- width: 128.px,
- height: 128.px,
- child: Image.asset("assets/images/logo.png"),
- ),
- if (showSocial)
- GestureDetector(
- onTap: () {
- wxLogin();
- // Global().mainPage!.login();
- },
- child: Container(
- width: 228.px,
- height: 48.px,
- margin: EdgeInsets.only(top: 48.px, bottom: 30.px),
- decoration: BoxDecoration(
- borderRadius: BorderRadius.all(Radius.circular(24.px)),
- color: kThemeColor),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- Image.asset(
- 'assets/images/wechat_login.png',
- width: 30.px,
- height: 24.px,
- ),
- SizedBox(
- width: 6.px,
- ),
- Text(
- '微信登录',
- style: TextStyle(
- color: const Color(0xFF000D1F),
- fontSize: 16.px,
- fontWeight: FontWeight.bold),
- )
- ],
- ),
- ),
- ),
- GestureDetector(
- onTap: () {
- Get.to(() => Phone(
- type: 1,
- ));
- },
- child: Text(
- '手机短信验证码登录',
- style:
- TextStyle(color: const Color(0x99C4CCDA), fontSize: 14.px),
- ),
- ),
- // SignInWithAppleButton(
- // onPressed: () async {
- // try{
- // final credential = await SignInWithApple.getAppleIDCredential(
- // scopes: [
- // AppleIDAuthorizationScopes.email,
- // AppleIDAuthorizationScopes.fullName,
- // ],
- // );
- // print(credential);
- // } on Error catch (e){
- // print(e.toString());
- // }
- // },
- // )
- ],
- ),
- ),
- );
- }
- }
|