Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-fluwx
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
openSourceLibrary
clx-fluwx
Commits
cc517508
提交
cc517508
authored
9月 11, 2023
作者:
lopo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: cache open url request when WXApi is not registered, and handle it…
refactor: cache open url request when WXApi is not registered, and handle it once WXApi is registered
上级
213869bb
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
37 行增加
和
4 行删除
+37
-4
FluwxPlugin.m
ios/Classes/FluwxPlugin.m
+37
-4
没有找到文件。
ios/Classes/FluwxPlugin.m
浏览文件 @
cc517508
...
@@ -48,6 +48,8 @@ typedef void(^FluwxWXReqRunnable)(void);
...
@@ -48,6 +48,8 @@ typedef void(^FluwxWXReqRunnable)(void);
BOOL
_isRunning
;
BOOL
_isRunning
;
BOOL
_attemptToResumeMsgFromWxFlag
;
BOOL
_attemptToResumeMsgFromWxFlag
;
FluwxWXReqRunnable
_attemptToResumeMsgFromWxRunnable
;
FluwxWXReqRunnable
_attemptToResumeMsgFromWxRunnable
;
// cache open url request when WXApi is not registered, and handle it once WXApi is registered
FluwxWXReqRunnable
_cachedOpenUrlRequest
;
}
}
const
NSString
*
errStr
=
@"errStr"
;
const
NSString
*
errStr
=
@"errStr"
;
...
@@ -208,6 +210,12 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -208,6 +210,12 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
_isRunning
=
isWeChatRegistered
;
_isRunning
=
isWeChatRegistered
;
result
(
@
(
isWeChatRegistered
));
result
(
@
(
isWeChatRegistered
));
// handle the cached open url request (if any) immediately
if
(
_cachedOpenUrlRequest
!=
nil
)
{
_cachedOpenUrlRequest
();
_cachedOpenUrlRequest
=
nil
;
}
}
}
-
(
void
)
checkWeChatInstallation
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
-
(
void
)
checkWeChatInstallation
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
...
@@ -370,27 +378,52 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -370,27 +378,52 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
}
}
// Deprecated since iOS 9
// See https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623073-application?language=objc
// Use `application:openURL:options:` instead.
-
(
BOOL
)
application
:(
UIApplication
*
)
application
openURL
:(
NSURL
*
)
url
sourceApplication
:(
NSString
*
)
sourceApplication
annotation
:(
id
)
annotation
{
-
(
BOOL
)
application
:(
UIApplication
*
)
application
openURL
:(
NSURL
*
)
url
sourceApplication
:(
NSString
*
)
sourceApplication
annotation
:(
id
)
annotation
{
// Since flutter has minimum iOS version requirement of 11.0, we don't need to change the implementation here.
return
[
WXApi
handleOpenURL
:
url
delegate
:
self
];
return
[
WXApi
handleOpenURL
:
url
delegate
:
self
];
}
}
// Deprecated since iOS 9
// See https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1622964-application?language=objc
// Use `application:openURL:options:` instead.
-
(
BOOL
)
application
:(
UIApplication
*
)
application
handleOpenURL
:(
NSURL
*
)
url
{
-
(
BOOL
)
application
:(
UIApplication
*
)
application
handleOpenURL
:(
NSURL
*
)
url
{
// Since flutter has minimum iOS version requirement of 11.0, we don't need to change the implementation here.
return
[
WXApi
handleOpenURL
:
url
delegate
:
self
];
return
[
WXApi
handleOpenURL
:
url
delegate
:
self
];
}
}
// NOTE: 9.0以后使用新API接口
// Available on iOS 9.0 and later
// See https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623112-application?language=objc
-
(
BOOL
)
application
:(
UIApplication
*
)
app
openURL
:(
NSURL
*
)
url
options
:(
NSDictionary
<
NSString
*
,
id
>
*
)
options
{
-
(
BOOL
)
application
:(
UIApplication
*
)
app
openURL
:(
NSURL
*
)
url
options
:(
NSDictionary
<
NSString
*
,
id
>
*
)
options
{
return
[
WXApi
handleOpenURL
:
url
delegate
:
self
];
// ↓ previous solution -- according to document, this may fail if the WXApi hasn't registered yet.
// return [WXApi handleOpenURL:url delegate:self];
if
(
_isRunning
)
{
// registered -- directly handle open url request by WXApi
return
[
WXApi
handleOpenURL
:
url
delegate
:
self
];
}
else
{
// unregistered -- cache open url request and handle it once WXApi is registered
_cachedOpenUrlRequest
=
^
()
{
[
WXApi
handleOpenURL
:
url
delegate
:
self
];
};
// simply return YES to indicate that we can handle open url request later
return
YES
;
}
}
}
#ifndef SCENE_DELEGATE
#ifndef SCENE_DELEGATE
-
(
BOOL
)
application
:(
UIApplication
*
)
application
continueUserActivity
:(
NSUserActivity
*
)
userActivity
restorationHandler
:(
void
(
^
)(
NSArray
*
_Nonnull
))
restorationHandler
{
-
(
BOOL
)
application
:(
UIApplication
*
)
application
continueUserActivity
:(
NSUserActivity
*
)
userActivity
restorationHandler
:(
void
(
^
)(
NSArray
*
_Nonnull
))
restorationHandler
{
return
[
WXApi
handleOpenUniversalLink
:
userActivity
delegate
:
self
];
// TODO: (if need) cache userActivity and handle it once WXApi is registered
return
[
WXApi
handleOpenUniversalLink
:
userActivity
delegate
:
self
];
}
}
#endif
#endif
#ifdef SCENE_DELEGATE
#ifdef SCENE_DELEGATE
-
(
void
)
scene
:(
UIScene
*
)
scene
continueUserActivity
:(
NSUserActivity
*
)
userActivity
API_AVAILABLE
(
ios
(
13
.
0
)){
-
(
void
)
scene
:(
UIScene
*
)
scene
continueUserActivity
:(
NSUserActivity
*
)
userActivity
API_AVAILABLE
(
ios
(
13
.
0
)){
// TODO: (if need) cache userActivity and handle it once WXApi is registered
[
WXApi
handleOpenUniversalLink
:
userActivity
delegate
:
self
];
[
WXApi
handleOpenUniversalLink
:
userActivity
delegate
:
self
];
}
}
#endif
#endif
...
@@ -1069,7 +1102,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1069,7 +1102,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
-
(
void
)
sendText
:
(
NSString
*
)
text
-
(
void
)
sendText
:
(
NSString
*
)
text
InScene
:
(
enum
WXScene
)
scene
InScene
:
(
enum
WXScene
)
scene
completion
:
(
void
(
^
__nullable
)(
BOOL
success
))
completion
{
completion
:
(
void
(
^
__nullable
)(
BOOL
success
))
completion
{
SendMessageToWXReq
*
req
=
[[
SendMessageToWXReq
alloc
]
init
];
SendMessageToWXReq
*
req
=
[[
SendMessageToWXReq
alloc
]
init
];
req
.
scene
=
scene
;
req
.
scene
=
scene
;
req
.
bText
=
YES
;
req
.
bText
=
YES
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论