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 {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
Tencent tencent = Tencent();
|
||||
tencent.registerApp(appId: '222222');
|
||||
return TencentProvider(
|
||||
tencent: tencent,
|
||||
child: MaterialApp(
|
||||
home: Home(tencent: tencent),
|
||||
),
|
||||
return MaterialApp(
|
||||
home: Home(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class Home extends StatefulWidget {
|
||||
Home({
|
||||
Key key,
|
||||
@required this.tencent,
|
||||
}) : super(key: key);
|
||||
|
||||
final Tencent tencent;
|
||||
|
||||
@override
|
||||
State<StatefulWidget> createState() {
|
||||
return _HomeState();
|
||||
@ -51,6 +39,8 @@ class Home extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _HomeState extends State<Home> {
|
||||
Tencent _tencent;
|
||||
|
||||
StreamSubscription<TencentLoginResp> _login;
|
||||
StreamSubscription<TencentUserInfoResp> _userInfo;
|
||||
StreamSubscription<TencentShareResp> _share;
|
||||
@ -60,9 +50,11 @@ class _HomeState extends State<Home> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_login = widget.tencent.loginResp().listen(_listenLogin);
|
||||
_userInfo = widget.tencent.userInfoResp().listen(_listenUserInfo);
|
||||
_share = widget.tencent.shareResp().listen(_listenShare);
|
||||
_tencent = Tencent();
|
||||
_tencent.registerApp(appId: '222222');
|
||||
_login = _tencent.loginResp().listen(_listenLogin);
|
||||
_userInfo = _tencent.userInfoResp().listen(_listenUserInfo);
|
||||
_share = _tencent.shareResp().listen(_listenShare);
|
||||
}
|
||||
|
||||
void _listenLogin(TencentLoginResp resp) {
|
||||
@ -107,14 +99,14 @@ class _HomeState extends State<Home> {
|
||||
title: const Text('环境检查'),
|
||||
onTap: () async {
|
||||
String content =
|
||||
'tencent: ${await widget.tencent.isQQInstalled()} - ${await widget.tencent.isQQSupportSSOLogin()}';
|
||||
'tencent: ${await _tencent.isQQInstalled()} - ${await _tencent.isQQSupportSSOLogin()}';
|
||||
_showTips('环境检查', content);
|
||||
},
|
||||
),
|
||||
ListTile(
|
||||
title: const Text('登录'),
|
||||
onTap: () {
|
||||
widget.tencent.login(
|
||||
_tencent.login(
|
||||
scope: [TencentScope.GET_SIMPLE_USERINFO],
|
||||
);
|
||||
},
|
||||
@ -127,7 +119,7 @@ class _HomeState extends State<Home> {
|
||||
if (DateTime.now().millisecondsSinceEpoch -
|
||||
_loginResp.createAt <
|
||||
_loginResp.expiresIn * 1000) {
|
||||
widget.tencent.getUserInfo(
|
||||
_tencent.getUserInfo(
|
||||
openId: _loginResp.openid,
|
||||
accessToken: _loginResp.accessToken,
|
||||
expiresIn: _loginResp.expiresIn,
|
||||
@ -140,7 +132,7 @@ class _HomeState extends State<Home> {
|
||||
ListTile(
|
||||
title: const Text('分享文字'),
|
||||
onTap: () {
|
||||
widget.tencent.shareMood(
|
||||
_tencent.shareMood(
|
||||
scene: TencentScene.SCENE_QZONE,
|
||||
summary: '分享测试',
|
||||
);
|
||||
@ -160,7 +152,7 @@ class _HomeState extends State<Home> {
|
||||
saveFile.writeAsBytesSync(imageData.buffer.asUint8List(),
|
||||
flush: true);
|
||||
}
|
||||
await widget.tencent.shareImage(
|
||||
await _tencent.shareImage(
|
||||
scene: TencentScene.SCENE_QQ,
|
||||
imageUri: Uri.file(saveFile.path),
|
||||
);
|
||||
@ -169,7 +161,7 @@ class _HomeState extends State<Home> {
|
||||
ListTile(
|
||||
title: const Text('分享链接'),
|
||||
onTap: () {
|
||||
widget.tencent.shareWebpage(
|
||||
_tencent.shareWebpage(
|
||||
scene: TencentScene.SCENE_QQ,
|
||||
title: 'title',
|
||||
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'
|
||||
hide TencentUserInfoRespSerializer;
|
||||
export 'src/tencent.dart';
|
||||
export 'src/tencent_provider.dart';
|
||||
export 'src/tencent_qzone_flag.dart';
|
||||
export 'src/tencent_scene.dart';
|
||||
export 'src/tencent_scope.dart';
|
||||
|
@ -43,8 +43,8 @@ class Tencent {
|
||||
|
||||
static const String _SCHEME_FILE = 'file';
|
||||
|
||||
static const MethodChannel _channel =
|
||||
MethodChannel('v7lin.github.io/fake_tencent');
|
||||
final MethodChannel _channel =
|
||||
const MethodChannel('v7lin.github.io/fake_tencent');
|
||||
|
||||
final StreamController<TencentLoginResp> _loginRespStreamController =
|
||||
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
|
||||
description: A powerful tencent plugin for Flutter.
|
||||
version: 0.2.0+1
|
||||
version: 0.3.0
|
||||
author: v7lin <v7lin@qq.com>
|
||||
homepage: https://github.com/v7lin/fake_tencent
|
||||
|
||||
|
Reference in New Issue
Block a user