Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-fluwx
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
openSourceLibrary
clx-fluwx
Commits
636bfc42
提交
636bfc42
authored
5月 17, 2023
作者:
JarvanMo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor subscribe response
上级
9dd5f6b2
显示空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
88 行增加
和
18 行删除
+88
-18
BASIC_KNOWLEDGE.md
doc/BASIC_KNOWLEDGE.md
+11
-3
BASIC_KNOWLEDGE_CN.md
doc/BASIC_KNOWLEDGE_CN.md
+9
-4
cold_boot_page.dart
example/lib/pages/cold_boot_page.dart
+1
-1
launch_mini_program_page.dart
example/lib/pages/launch_mini_program_page.dart
+2
-2
pay_page.dart
example/lib/pages/pay_page.dart
+2
-2
share_text_page.dart
example/lib/pages/share_text_page.dart
+20
-2
fluwx.dart
lib/fluwx.dart
+1
-0
fluwx.dart
lib/src/fluwx.dart
+25
-4
cancelable.dart
lib/src/foundation/cancelable.dart
+17
-0
没有找到文件。
doc/BASIC_KNOWLEDGE.md
浏览文件 @
636bfc42
...
@@ -5,17 +5,25 @@ Actually, almost every result from functions like `share` or `pay` which call `s
...
@@ -5,17 +5,25 @@ Actually, almost every result from functions like `share` or `pay` which call `s
So if you want get the real result you shall do like this:
So if you want get the real result you shall do like this:
```
dart
```
dart
fluwx
.
subscribeResponse
(
(
response
)
{
var
listener
=
(
response
)
{
if
(
response
is
WeChatAuthResponse
)
{
if
(
response
is
WeChatAuthResponse
)
{
}
}
});
};
fluwx
.
addSubscriber
(
listener
);
// subscribe response from WeChat
fluwx
.
removeSubscriber
(
listener
);
// unsubscribe response from WeChat
```
Or
```
dart
var
cancelable
=
fluwx
.
addSubscriber
(
listener
);
cancelable
.
cancel
();
// unsubscribe response from WeChat
```
```
Take a look at subclasses of
`WeChatResponse`
for help.
Take a look at subclasses of
`WeChatResponse`
for help.
> NOTE: If you get `errCode = -1`, please read the WeChatSDK document for help. There are to many cases lead to that.
> NOTE: If you get `errCode = -1`, please read the WeChatSDK document for help. There are to many cases lead to that.
You can also unsubscribe response by calling
`fluwx.subscribeResponse`
.
### Images in WeChat
### Images in WeChat
...
...
doc/BASIC_KNOWLEDGE_CN.md
浏览文件 @
636bfc42
...
@@ -6,17 +6,22 @@
...
@@ -6,17 +6,22 @@
为了获取真实的回调,你应该这样做:
为了获取真实的回调,你应该这样做:
```
dart
```
dart
fluwx
.
subscribeResponse
(
(
response
)
{
var
listener
=
(
response
)
{
if
(
response
is
WeChatAuthResponse
)
{
if
(
response
is
WeChatAuthResponse
)
{
}
}
});
};
fluwx
.
addSubscriber
(
listener
);
// 订阅消息
fluwx
.
removeSubscriber
(
listener
);
// 取消订阅消息
```
```
Or
```
dart
var
cancelable
=
fluwx
.
addSubscriber
(
listener
);
cancelable
.
cancel
();
// 取消订阅消息
```
> 笔记: 如果你的 `errCode = -1`, 那请阅读微信官方文档,因为-1的原因数不胜数.
> 笔记: 如果你的 `errCode = -1`, 那请阅读微信官方文档,因为-1的原因数不胜数.
你也可以通过
`fluwx.unsubscribeResponse`
取消订阅消息。
### 图片
### 图片
有四种内置
`WeChatImage`
:
有四种内置
`WeChatImage`
:
...
...
example/lib/pages/cold_boot_page.dart
浏览文件 @
636bfc42
...
@@ -39,7 +39,7 @@ class _ColdBootPageState extends State<ColdBootPage> {
...
@@ -39,7 +39,7 @@ class _ColdBootPageState extends State<ColdBootPage> {
}
}
};
};
fluwx
.
subscribeResponse
(
responseListener
);
fluwx
.
addSubscriber
(
responseListener
);
}
}
@override
@override
Widget
build
(
BuildContext
context
)
{
Widget
build
(
BuildContext
context
)
{
...
...
example/lib/pages/launch_mini_program_page.dart
浏览文件 @
636bfc42
...
@@ -17,7 +17,7 @@ class _LaunchMiniProgramPageState extends State<LaunchMiniProgramPage> {
...
@@ -17,7 +17,7 @@ class _LaunchMiniProgramPageState extends State<LaunchMiniProgramPage> {
void
dispose
()
{
void
dispose
()
{
super
.
dispose
();
super
.
dispose
();
_result
=
null
;
_result
=
null
;
fluwx
.
unsubscribeResponse
(
responseListener
);
fluwx
.
removeSubscriber
(
responseListener
);
}
}
@override
@override
...
@@ -33,7 +33,7 @@ class _LaunchMiniProgramPageState extends State<LaunchMiniProgramPage> {
...
@@ -33,7 +33,7 @@ class _LaunchMiniProgramPageState extends State<LaunchMiniProgramPage> {
}
}
};
};
fluwx
.
subscribeResponse
(
responseListener
);
fluwx
.
addSubscriber
(
responseListener
);
}
}
@override
@override
...
...
example/lib/pages/pay_page.dart
浏览文件 @
636bfc42
...
@@ -20,7 +20,7 @@ class _PayPageState extends State<PayPage> {
...
@@ -20,7 +20,7 @@ class _PayPageState extends State<PayPage> {
@override
@override
void
dispose
()
{
void
dispose
()
{
super
.
dispose
();
super
.
dispose
();
fluwx
.
unsubscribeResponse
(
responseListener
);
fluwx
.
removeSubscriber
(
responseListener
);
}
}
@override
@override
...
@@ -33,7 +33,7 @@ class _PayPageState extends State<PayPage> {
...
@@ -33,7 +33,7 @@ class _PayPageState extends State<PayPage> {
});
});
}
}
};
};
fluwx
.
subscribeResponse
(
responseListener
);
fluwx
.
addSubscriber
(
responseListener
);
}
}
@override
@override
...
...
example/lib/pages/share_text_page.dart
浏览文件 @
636bfc42
...
@@ -12,6 +12,22 @@ class _ShareTextPageState extends State<ShareTextPage> {
...
@@ -12,6 +12,22 @@ class _ShareTextPageState extends State<ShareTextPage> {
String
_text
=
'share text from fluwx'
;
String
_text
=
'share text from fluwx'
;
WeChatScene
scene
=
WeChatScene
.
session
;
WeChatScene
scene
=
WeChatScene
.
session
;
Fluwx
fluwx
=
Fluwx
();
Fluwx
fluwx
=
Fluwx
();
late
FluwxCancelable
cancelable
;
@override
void
initState
()
{
super
.
initState
();
cancelable
=
fluwx
.
addSubscriber
((
response
)
{
debugPrint
(
"response is
${response.isSuccessful}
"
);
});
}
@override
void
dispose
()
{
super
.
dispose
();
cancelable
.
cancel
();
}
@override
@override
Widget
build
(
BuildContext
context
)
{
Widget
build
(
BuildContext
context
)
{
...
@@ -20,8 +36,10 @@ class _ShareTextPageState extends State<ShareTextPage> {
...
@@ -20,8 +36,10 @@ class _ShareTextPageState extends State<ShareTextPage> {
title:
const
Text
(
'ShareText'
),
title:
const
Text
(
'ShareText'
),
actions:
<
Widget
>[
actions:
<
Widget
>[
IconButton
(
IconButton
(
icon:
Icon
(
Icons
.
share
,
color:
Colors
.
white
),
icon:
const
Icon
(
Icons
.
share
,
color:
Colors
.
white
),
onPressed:
_shareText
,
onPressed:
(){
_shareText
();
},
),
),
],
],
),
),
...
...
lib/fluwx.dart
浏览文件 @
636bfc42
...
@@ -25,6 +25,7 @@ library fluwx;
...
@@ -25,6 +25,7 @@ library fluwx;
export
'src/fluwx.dart'
;
export
'src/fluwx.dart'
;
export
'src/foundation/arguments.dart'
;
export
'src/foundation/arguments.dart'
;
export
'src/foundation/cancelable.dart'
hide
FluwxCancelableImpl
;
export
'src/response/wechat_response.dart'
;
export
'src/response/wechat_response.dart'
;
export
'src/wechat_enums.dart'
;
export
'src/wechat_enums.dart'
;
export
'src/wechat_file.dart'
hide
FileSchema
;
export
'src/wechat_file.dart'
hide
FileSchema
;
lib/src/fluwx.dart
浏览文件 @
636bfc42
...
@@ -20,6 +20,7 @@
...
@@ -20,6 +20,7 @@
import
'dart:async'
;
import
'dart:async'
;
import
'foundation/arguments.dart'
;
import
'foundation/arguments.dart'
;
import
'foundation/cancelable.dart'
;
import
'method_channel/fluwx_platform_interface.dart'
;
import
'method_channel/fluwx_platform_interface.dart'
;
import
'response/wechat_response.dart'
;
import
'response/wechat_response.dart'
;
...
@@ -27,7 +28,7 @@ class Fluwx {
...
@@ -27,7 +28,7 @@ class Fluwx {
late
final
WeakReference
<
void
Function
(
WeChatResponse
event
)>
late
final
WeakReference
<
void
Function
(
WeChatResponse
event
)>
responseListener
;
responseListener
;
final
List
<
Function
(
WeChatResponse
response
)
>
_responseListeners
=
[];
final
List
<
WeChatResponseSubscriber
>
_responseListeners
=
[];
Fluwx
()
{
Fluwx
()
{
responseListener
=
WeakReference
((
event
)
{
responseListener
=
WeakReference
((
event
)
{
...
@@ -103,17 +104,37 @@ class Fluwx {
...
@@ -103,17 +104,37 @@ class Fluwx {
/// Only works on iOS in debug mode.
/// Only works on iOS in debug mode.
/// Check if your app can work with WeChat correctly.
/// Check if your app can work with WeChat correctly.
/// Please make sure [registerApi] returns true before self check.
/// Please make sure [registerApi] returns true before self check.
Future
<
void
>
selfCheck
()
async
{
Future
<
void
>
selfCheck
()
async
{
return
FluwxPlatform
.
instance
.
selfCheck
();
return
FluwxPlatform
.
instance
.
selfCheck
();
}
}
/// Subscribe responses from WeChat
/// Subscribe responses from WeChat
subscribeResponse
(
Function
(
WeChatResponse
response
)
listener
)
{
@Deprecated
(
"use [addSubscriber] instead"
)
FluwxCancelable
subscribeResponse
(
WeChatResponseSubscriber
listener
)
{
return
addSubscriber
(
listener
);
}
/// Add a subscriber to subscribe responses from WeChat
FluwxCancelable
addSubscriber
(
WeChatResponseSubscriber
listener
)
{
_responseListeners
.
add
(
listener
);
_responseListeners
.
add
(
listener
);
return
FluwxCancelableImpl
(
onCancel:
()
{
removeSubscriber
(
listener
);
});
}
}
/// Unsubscribe responses from WeChat
/// Unsubscribe responses from WeChat
unsubscribeResponse
(
Function
(
WeChatResponse
response
)
listener
)
{
@Deprecated
(
"use [removeSubscriber] instead"
)
unsubscribeResponse
(
WeChatResponseSubscriber
listener
)
{
removeSubscriber
(
listener
);
}
/// remove your subscriber from WeChat
removeSubscriber
(
WeChatResponseSubscriber
listener
)
{
_responseListeners
.
remove
(
listener
);
_responseListeners
.
remove
(
listener
);
}
}
/// remove all existing
clearSubscribers
()
{
_responseListeners
.
clear
();
}
}
}
lib/src/foundation/cancelable.dart
0 → 100644
浏览文件 @
636bfc42
import
'../response/wechat_response.dart'
;
typedef
WeChatResponseSubscriber
=
Function
(
WeChatResponse
response
);
mixin
FluwxCancelable
{
cancel
();
}
class
FluwxCancelableImpl
implements
FluwxCancelable
{
final
Function
onCancel
;
FluwxCancelableImpl
({
required
this
.
onCancel
});
@override
cancel
()
{
onCancel
();
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论