mirror of
https://github.com/RxReader/tencent_kit.git
synced 2025-06-21 03:01:01 +08:00
xxx
This commit is contained in:
@ -25,25 +25,13 @@ void main() {
|
|||||||
class MyApp extends StatelessWidget {
|
class MyApp extends StatelessWidget {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
Tencent tencent = Tencent();
|
return MaterialApp(
|
||||||
tencent.registerApp(appId: '222222');
|
home: Home(),
|
||||||
return TencentProvider(
|
|
||||||
tencent: tencent,
|
|
||||||
child: MaterialApp(
|
|
||||||
home: Home(tencent: tencent),
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class Home extends StatefulWidget {
|
class Home extends StatefulWidget {
|
||||||
Home({
|
|
||||||
Key key,
|
|
||||||
@required this.tencent,
|
|
||||||
}) : super(key: key);
|
|
||||||
|
|
||||||
final Tencent tencent;
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<StatefulWidget> createState() {
|
State<StatefulWidget> createState() {
|
||||||
return _HomeState();
|
return _HomeState();
|
||||||
@ -51,6 +39,8 @@ class Home extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _HomeState extends State<Home> {
|
class _HomeState extends State<Home> {
|
||||||
|
Tencent _tencent;
|
||||||
|
|
||||||
StreamSubscription<TencentLoginResp> _login;
|
StreamSubscription<TencentLoginResp> _login;
|
||||||
StreamSubscription<TencentUserInfoResp> _userInfo;
|
StreamSubscription<TencentUserInfoResp> _userInfo;
|
||||||
StreamSubscription<TencentShareResp> _share;
|
StreamSubscription<TencentShareResp> _share;
|
||||||
@ -60,9 +50,11 @@ class _HomeState extends State<Home> {
|
|||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
_login = widget.tencent.loginResp().listen(_listenLogin);
|
_tencent = Tencent();
|
||||||
_userInfo = widget.tencent.userInfoResp().listen(_listenUserInfo);
|
_tencent.registerApp(appId: '222222');
|
||||||
_share = widget.tencent.shareResp().listen(_listenShare);
|
_login = _tencent.loginResp().listen(_listenLogin);
|
||||||
|
_userInfo = _tencent.userInfoResp().listen(_listenUserInfo);
|
||||||
|
_share = _tencent.shareResp().listen(_listenShare);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _listenLogin(TencentLoginResp resp) {
|
void _listenLogin(TencentLoginResp resp) {
|
||||||
@ -107,14 +99,14 @@ class _HomeState extends State<Home> {
|
|||||||
title: const Text('环境检查'),
|
title: const Text('环境检查'),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
String content =
|
String content =
|
||||||
'tencent: ${await widget.tencent.isQQInstalled()} - ${await widget.tencent.isQQSupportSSOLogin()}';
|
'tencent: ${await _tencent.isQQInstalled()} - ${await _tencent.isQQSupportSSOLogin()}';
|
||||||
_showTips('环境检查', content);
|
_showTips('环境检查', content);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
ListTile(
|
ListTile(
|
||||||
title: const Text('登录'),
|
title: const Text('登录'),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
widget.tencent.login(
|
_tencent.login(
|
||||||
scope: [TencentScope.GET_SIMPLE_USERINFO],
|
scope: [TencentScope.GET_SIMPLE_USERINFO],
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@ -127,7 +119,7 @@ class _HomeState extends State<Home> {
|
|||||||
if (DateTime.now().millisecondsSinceEpoch -
|
if (DateTime.now().millisecondsSinceEpoch -
|
||||||
_loginResp.createAt <
|
_loginResp.createAt <
|
||||||
_loginResp.expiresIn * 1000) {
|
_loginResp.expiresIn * 1000) {
|
||||||
widget.tencent.getUserInfo(
|
_tencent.getUserInfo(
|
||||||
openId: _loginResp.openid,
|
openId: _loginResp.openid,
|
||||||
accessToken: _loginResp.accessToken,
|
accessToken: _loginResp.accessToken,
|
||||||
expiresIn: _loginResp.expiresIn,
|
expiresIn: _loginResp.expiresIn,
|
||||||
@ -140,7 +132,7 @@ class _HomeState extends State<Home> {
|
|||||||
ListTile(
|
ListTile(
|
||||||
title: const Text('分享文字'),
|
title: const Text('分享文字'),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
widget.tencent.shareMood(
|
_tencent.shareMood(
|
||||||
scene: TencentScene.SCENE_QZONE,
|
scene: TencentScene.SCENE_QZONE,
|
||||||
summary: '分享测试',
|
summary: '分享测试',
|
||||||
);
|
);
|
||||||
@ -160,7 +152,7 @@ class _HomeState extends State<Home> {
|
|||||||
saveFile.writeAsBytesSync(imageData.buffer.asUint8List(),
|
saveFile.writeAsBytesSync(imageData.buffer.asUint8List(),
|
||||||
flush: true);
|
flush: true);
|
||||||
}
|
}
|
||||||
await widget.tencent.shareImage(
|
await _tencent.shareImage(
|
||||||
scene: TencentScene.SCENE_QQ,
|
scene: TencentScene.SCENE_QQ,
|
||||||
imageUri: Uri.file(saveFile.path),
|
imageUri: Uri.file(saveFile.path),
|
||||||
);
|
);
|
||||||
@ -169,7 +161,7 @@ class _HomeState extends State<Home> {
|
|||||||
ListTile(
|
ListTile(
|
||||||
title: const Text('分享链接'),
|
title: const Text('分享链接'),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
widget.tencent.shareWebpage(
|
_tencent.shareWebpage(
|
||||||
scene: TencentScene.SCENE_QQ,
|
scene: TencentScene.SCENE_QQ,
|
||||||
title: 'title',
|
title: 'title',
|
||||||
targetUrl: 'https://www.baidu.com/',
|
targetUrl: 'https://www.baidu.com/',
|
||||||
|
@ -6,7 +6,6 @@ export 'src/domain/tencent_share_resp.dart' hide TencentShareRespSerializer;
|
|||||||
export 'src/domain/tencent_user_info_resp.dart'
|
export 'src/domain/tencent_user_info_resp.dart'
|
||||||
hide TencentUserInfoRespSerializer;
|
hide TencentUserInfoRespSerializer;
|
||||||
export 'src/tencent.dart';
|
export 'src/tencent.dart';
|
||||||
export 'src/tencent_provider.dart';
|
|
||||||
export 'src/tencent_qzone_flag.dart';
|
export 'src/tencent_qzone_flag.dart';
|
||||||
export 'src/tencent_scene.dart';
|
export 'src/tencent_scene.dart';
|
||||||
export 'src/tencent_scope.dart';
|
export 'src/tencent_scope.dart';
|
||||||
|
@ -43,8 +43,8 @@ class Tencent {
|
|||||||
|
|
||||||
static const String _SCHEME_FILE = 'file';
|
static const String _SCHEME_FILE = 'file';
|
||||||
|
|
||||||
static const MethodChannel _channel =
|
final MethodChannel _channel =
|
||||||
MethodChannel('v7lin.github.io/fake_tencent');
|
const MethodChannel('v7lin.github.io/fake_tencent');
|
||||||
|
|
||||||
final StreamController<TencentLoginResp> _loginRespStreamController =
|
final StreamController<TencentLoginResp> _loginRespStreamController =
|
||||||
StreamController<TencentLoginResp>.broadcast();
|
StreamController<TencentLoginResp>.broadcast();
|
||||||
|
@ -1,23 +0,0 @@
|
|||||||
import 'package:fake_tencent/src/tencent.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
|
||||||
|
|
||||||
class TencentProvider extends InheritedWidget {
|
|
||||||
TencentProvider({
|
|
||||||
Key key,
|
|
||||||
@required this.tencent,
|
|
||||||
@required Widget child,
|
|
||||||
}) : super(key: key, child: child);
|
|
||||||
|
|
||||||
final Tencent tencent;
|
|
||||||
|
|
||||||
@override
|
|
||||||
bool updateShouldNotify(InheritedWidget oldWidget) {
|
|
||||||
TencentProvider oldProvider = oldWidget as TencentProvider;
|
|
||||||
return tencent != oldProvider.tencent;
|
|
||||||
}
|
|
||||||
|
|
||||||
static TencentProvider of(BuildContext context) {
|
|
||||||
return context.inheritFromWidgetOfExactType(TencentProvider)
|
|
||||||
as TencentProvider;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +1,6 @@
|
|||||||
name: fake_tencent
|
name: fake_tencent
|
||||||
description: A powerful tencent plugin for Flutter.
|
description: A powerful tencent plugin for Flutter.
|
||||||
version: 0.2.0+1
|
version: 0.3.0
|
||||||
author: v7lin <v7lin@qq.com>
|
author: v7lin <v7lin@qq.com>
|
||||||
homepage: https://github.com/v7lin/fake_tencent
|
homepage: https://github.com/v7lin/fake_tencent
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user