@@ -66,9 +66,9 @@ class UserInfoNotifier with ChangeNotifier { | |||||
void unLogin() async { | void unLogin() async { | ||||
_userInfo = null; | _userInfo = null; | ||||
// 清除缓存数据 | // 清除缓存数据 | ||||
await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_TOKEN, ''); | |||||
await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_MOBILE, ''); | |||||
await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_USER_INFO, ''); | |||||
await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_TOKEN, null); | |||||
await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_MOBILE, null); | |||||
await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_USER_INFO, null); | |||||
// 退出淘宝登录 | // 退出淘宝登录 | ||||
FlutterAlibc.loginOut(); | FlutterAlibc.loginOut(); | ||||
// 退出QQ登录 | // 退出QQ登录 | ||||
@@ -0,0 +1,133 @@ | |||||
import 'package:flutter/material.dart'; | |||||
import 'package:zhiying_comm/zhiying_comm.dart'; | |||||
///渠道授权成功页面 | |||||
class AuthSuccessPage extends StatefulWidget { | |||||
final AuthResultType authResultType; | |||||
const AuthSuccessPage({Key key, this.authResultType}) : super(key: key); | |||||
@override | |||||
_AuthSuccessPageState createState() => _AuthSuccessPageState(); | |||||
} | |||||
class _AuthSuccessPageState extends State<AuthSuccessPage> { | |||||
String title = ''; | |||||
String contentTitle = ''; | |||||
String content = ''; | |||||
String btntext = ''; | |||||
@override | |||||
void initState() { | |||||
switch (widget.authResultType) { | |||||
case AuthResultType.success: | |||||
title = '授权成功'; | |||||
contentTitle = '恭喜您授权成功'; | |||||
content = '前往享受超多优惠吧'; | |||||
btntext = '知道了'; | |||||
break; | |||||
case AuthResultType.error: | |||||
title = '授权失败'; | |||||
contentTitle = '授权失败'; | |||||
content = '很抱歉,您的淘宝账号已经成为了合作方,如需申请渠道授权,您可更换其他淘宝账号'; | |||||
btntext = '重新授权'; | |||||
break; | |||||
} | |||||
super.initState(); | |||||
} | |||||
@override | |||||
Widget build(BuildContext context) { | |||||
return Scaffold( | |||||
appBar: AppBar( | |||||
brightness: Brightness.light, | |||||
leading: IconButton( | |||||
onPressed: () { | |||||
Navigator.pop(context); | |||||
}, | |||||
icon: Icon( | |||||
Icons.arrow_back_ios, | |||||
color: HexColor.fromHex("#FF333333"), | |||||
size: 18, | |||||
), | |||||
), | |||||
centerTitle: true, | |||||
elevation: 1, | |||||
backgroundColor: Colors.white, | |||||
title: Text( | |||||
title, | |||||
style: TextStyle(color: HexColor.fromHex("#FF333333"), fontSize: 17), | |||||
), | |||||
), | |||||
body: Container( | |||||
child: Center( | |||||
child: Column( | |||||
crossAxisAlignment: CrossAxisAlignment.center, | |||||
children: [ | |||||
SizedBox( | |||||
height: 30, | |||||
), | |||||
Image.asset( | |||||
"assets/images/auth/auth_success.png", | |||||
package: 'zhiying_base_widget', | |||||
width: 107, | |||||
height: 107, | |||||
fit: BoxFit.fill, | |||||
), | |||||
SizedBox( | |||||
height: 30, | |||||
), | |||||
Text( | |||||
contentTitle, | |||||
style: TextStyle(color: HexColor.fromHex("#FF333333"), fontSize: 15), | |||||
), | |||||
Container( | |||||
margin: EdgeInsets.only(left: 56, right: 56), | |||||
child: Text( | |||||
content, | |||||
style: TextStyle(color: HexColor.fromHex("#FF999999"), fontSize: 13), | |||||
), | |||||
), | |||||
SizedBox( | |||||
height: 30, | |||||
), | |||||
GestureDetector( | |||||
onTap: () { | |||||
onClick(); | |||||
}, | |||||
child: Container( | |||||
height: 46.5, | |||||
width: 265, | |||||
decoration: BoxDecoration( | |||||
borderRadius: BorderRadius.circular(100), | |||||
boxShadow: [BoxShadow(color: HexColor.fromHex("FFFF5500"), blurRadius: 1, spreadRadius: 2, offset: Offset(1, 4))], | |||||
gradient: LinearGradient(colors: [HexColor.fromHex("#FFFF8E00"), HexColor.fromHex("#FFFF5500")], begin: Alignment.topCenter, end: Alignment.bottomCenter)), | |||||
child: Center( | |||||
child: Text( | |||||
btntext, | |||||
style: TextStyle(color: HexColor.fromHex("#FFFFFFFF"), fontSize: 13), | |||||
), | |||||
), | |||||
), | |||||
) | |||||
], | |||||
), | |||||
), | |||||
), | |||||
); | |||||
} | |||||
///点击事件 | |||||
void onClick() async { | |||||
if (widget.authResultType == AuthResultType.success) { | |||||
Navigator.maybePop(context); | |||||
} else if (widget.authResultType == AuthResultType.error) { | |||||
///继续授权 | |||||
await TaobaoAuth.auth(context).then((value) { | |||||
Navigator.pop(context); | |||||
}); | |||||
} | |||||
} | |||||
} | |||||
enum AuthResultType { success, error } |
@@ -5,6 +5,7 @@ import 'package:flutter_alibc/alibc_model.dart'; | |||||
import 'package:flutter_alibc/flutter_alibc.dart'; | import 'package:flutter_alibc/flutter_alibc.dart'; | ||||
import 'package:fluttertoast/fluttertoast.dart'; | import 'package:fluttertoast/fluttertoast.dart'; | ||||
import 'package:zhiying_comm/models/profile/profile_model.dart'; | import 'package:zhiying_comm/models/profile/profile_model.dart'; | ||||
import 'package:zhiying_comm/pages/auth_page/auth_success_page/auth_success_page.dart'; | |||||
import 'package:zhiying_comm/util/taobao/taobao_auth_alert.dart'; | import 'package:zhiying_comm/util/taobao/taobao_auth_alert.dart'; | ||||
import 'package:zhiying_comm/zhiying_comm.dart'; | import 'package:zhiying_comm/zhiying_comm.dart'; | ||||
import 'package:provider/provider.dart'; | import 'package:provider/provider.dart'; | ||||
@@ -13,12 +14,12 @@ class TaobaoAuth { | |||||
// static ProfileModel _profile; | // static ProfileModel _profile; | ||||
// 淘宝授权 | // 淘宝授权 | ||||
static auth(BuildContext context) async { | |||||
static Future auth(BuildContext context) async { | |||||
bool isAuth = await TaobaoAuth.isAuth(); | bool isAuth = await TaobaoAuth.isAuth(); | ||||
if (isAuth) { | if (isAuth) { | ||||
Fluttertoast.showToast(msg: '你已经授权过了'); | Fluttertoast.showToast(msg: '你已经授权过了'); | ||||
Provider.of<UserInfoNotifier>(context, listen: false).updateUserAuth(true); | Provider.of<UserInfoNotifier>(context, listen: false).updateUserAuth(true); | ||||
return; | |||||
return null; | |||||
} | } | ||||
bool isConfirm = await showDialog( | bool isConfirm = await showDialog( | ||||
@@ -30,13 +31,18 @@ class TaobaoAuth { | |||||
Map<String, dynamic> data = Map<String, dynamic>.from(await NetUtil.post('/api/v1/taobao/auth', method: NetMethod.GET)); | Map<String, dynamic> data = Map<String, dynamic>.from(await NetUtil.post('/api/v1/taobao/auth', method: NetMethod.GET)); | ||||
Logger.debug(data); | Logger.debug(data); | ||||
if (data['code'] != 1) { | if (data['code'] != 1) { | ||||
return; | |||||
return null; | |||||
} | } | ||||
String url = data['data']['redirect_url']; | String url = data['data']['redirect_url']; | ||||
print("授权链接" + url); | print("授权链接" + url); | ||||
TradeResult result; | TradeResult result; | ||||
if (Platform.isAndroid) { | if (Platform.isAndroid) { | ||||
result = await FlutterAlibc.openByUrl(url: url, backUrl: "alisdk://", isAuth: true); | result = await FlutterAlibc.openByUrl(url: url, backUrl: "alisdk://", isAuth: true); | ||||
if(result.errorCode=="0"){ | |||||
await Navigator.push(context,MaterialPageRoute(builder: (_)=>AuthSuccessPage(authResultType: AuthResultType.success,)) ); | |||||
}else{ | |||||
await Navigator.push(context,MaterialPageRoute(builder: (_)=>AuthSuccessPage(authResultType: AuthResultType.error,)) ); | |||||
} | |||||
} else if (Platform.isIOS) { | } else if (Platform.isIOS) { | ||||
result = await FlutterAlibc.openByUrl(url: url); | result = await FlutterAlibc.openByUrl(url: url); | ||||
} | } | ||||
@@ -40,9 +40,9 @@ dependencies: | |||||
# app更新dialogUI(用于IOS,以便统一样式) | # app更新dialogUI(用于IOS,以便统一样式) | ||||
flutter_update_dialog: 1.0.0 | flutter_update_dialog: 1.0.0 | ||||
flutter_alibc: | flutter_alibc: | ||||
#path: ../zhiying_flutter_alibc | |||||
# path: ../zhiying_flutter_alibc | |||||
git: | git: | ||||
ref: 0.0.4 | |||||
ref: 0.0.5 | |||||
url: http://192.168.0.138:3000/FnuoOS_ZhiYing/zhiying_flutter_alibc.git | url: http://192.168.0.138:3000/FnuoOS_ZhiYing/zhiying_flutter_alibc.git | ||||
url_launcher: ^5.6.0 | url_launcher: ^5.6.0 | ||||
#图片预览控件 | #图片预览控件 | ||||
@@ -74,7 +74,6 @@ dependencies: | |||||
ref: '0.0.1' | ref: '0.0.1' | ||||
#文件夹路径管理 | #文件夹路径管理 | ||||
path_provider: ^1.4.0 | path_provider: ^1.4.0 | ||||
#保存文件到相册 | #保存文件到相册 | ||||
save_image: | save_image: | ||||
git: | git: | ||||