Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-fluwx
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
openSourceLibrary
clx-fluwx
Commits
e273d76f
Unverified
提交
e273d76f
authored
9月 21, 2024
作者:
JarvanMo
提交者:
GitHub
9月 21, 2024
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #639 from OpenFlutter/fix/list
🐛
Construct listener gracefully
上级
72a628b0
52c0ebd6
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
22 行增加
和
21 行删除
+22
-21
fluwx.dart
lib/src/fluwx.dart
+16
-15
cancelable.dart
lib/src/foundation/cancelable.dart
+5
-6
wechat_response.dart
lib/src/response/wechat_response.dart
+1
-0
没有找到文件。
lib/src/fluwx.dart
浏览文件 @
e273d76f
...
...
@@ -25,20 +25,21 @@ import 'method_channel/fluwx_platform_interface.dart';
import
'response/wechat_response.dart'
;
class
Fluwx
{
late
final
WeakReference
<
void
Function
(
WeChatResponse
event
)>
responseListener
;
Fluwx
()
{
_responseSubscription
=
FluwxPlatform
.
instance
.
responseEventHandler
.
listen
(
_responseEventListener
,
onDone:
()
{
_responseSubscription
?.
cancel
();
},
);
}
final
List
<
WeChatResponseSubscriber
>
_responseListeners
=
[];
final
_responseListeners
=
<
WeChatResponseSubscriber
>[];
StreamSubscription
?
_responseSubscription
;
Fluwx
()
{
responseListener
=
WeakReference
((
event
)
{
for
(
var
listener
in
_responseListeners
)
{
listener
(
event
);
}
});
final
target
=
responseListener
.
target
;
if
(
target
!=
null
)
{
FluwxPlatform
.
instance
.
responseEventHandler
.
listen
(
target
);
void
_responseEventListener
(
WeChatResponse
event
)
{
for
(
final
listener
in
_responseListeners
.
toList
())
{
listener
(
event
);
}
}
...
...
@@ -128,17 +129,17 @@ class Fluwx {
/// Unsubscribe responses from WeChat
@Deprecated
(
"use [removeSubscriber] instead"
)
unsubscribeResponse
(
WeChatResponseSubscriber
listener
)
{
void
unsubscribeResponse
(
WeChatResponseSubscriber
listener
)
{
removeSubscriber
(
listener
);
}
/// remove your subscriber from WeChat
removeSubscriber
(
WeChatResponseSubscriber
listener
)
{
void
removeSubscriber
(
WeChatResponseSubscriber
listener
)
{
_responseListeners
.
remove
(
listener
);
}
/// remove all existing
clearSubscribers
()
{
void
clearSubscribers
()
{
_responseListeners
.
clear
();
}
}
lib/src/foundation/cancelable.dart
浏览文件 @
e273d76f
...
...
@@ -17,20 +17,19 @@
* the License.
*/
import
'
../response/wechat_response
.dart'
;
import
'
package:flutter/foundation
.dart'
;
typedef
WeChatResponseSubscriber
=
Function
(
WeChatResponse
response
);
mixin
FluwxCancelable
{
cancel
();
void
cancel
();
}
class
FluwxCancelableImpl
implements
FluwxCancelable
{
final
Function
onCancel
;
const
FluwxCancelableImpl
({
required
this
.
onCancel
})
;
FluwxCancelableImpl
({
required
this
.
onCancel
})
;
final
VoidCallback
onCancel
;
@override
cancel
()
{
void
cancel
()
{
onCancel
();
}
}
lib/src/response/wechat_response.dart
浏览文件 @
e273d76f
...
...
@@ -22,6 +22,7 @@ import 'dart:typed_data';
const
String
_errCode
=
'errCode'
;
const
String
_errStr
=
'errStr'
;
typedef
WeChatResponseSubscriber
=
void
Function
(
WeChatResponse
response
);
typedef
_WeChatResponseInvoker
=
WeChatResponse
Function
(
Map
argument
);
Map
<
String
,
_WeChatResponseInvoker
>
_nameAndResponseMapper
=
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论