Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-fluwx
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
openSourceLibrary
clx-fluwx
Commits
eeacf738
Unverified
提交
eeacf738
authored
11月 04, 2024
作者:
Alex Li
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
🔥
Remove thumbnail and format files
上级
eb54b610
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
492 行增加
和
633 行删除
+492
-633
FluwxDelegate.m
ios/Classes/FluwxDelegate.m
+1
-2
FluwxPlugin.m
ios/Classes/FluwxPlugin.m
+467
-603
FluwxStringUtil.m
ios/Classes/FluwxStringUtil.m
+1
-8
ThumbnailHelper.h
ios/Classes/ThumbnailHelper.h
+2
-1
ThumbnailHelper.m
ios/Classes/ThumbnailHelper.m
+20
-19
FluwxDelegate.h
ios/Classes/public/FluwxDelegate.h
+1
-0
没有找到文件。
ios/Classes/FluwxDelegate.m
浏览文件 @
eeacf738
...
@@ -20,9 +20,8 @@
...
@@ -20,9 +20,8 @@
return
instance
;
return
instance
;
}
}
-
(
void
)
registerWxAPI
:
(
NSString
*
)
appId
universalLink
:
(
NSString
*
)
universalLink
{
-
(
void
)
registerWxAPI
:
(
NSString
*
)
appId
universalLink
:
(
NSString
*
)
universalLink
{
[
WXApi
registerApp
:
appId
universalLink
:
universalLink
];
[
WXApi
registerApp
:
appId
universalLink
:
universalLink
];
}
}
@end
@end
ios/Classes/FluwxPlugin.m
浏览文件 @
eeacf738
...
@@ -12,7 +12,6 @@
...
@@ -12,7 +12,6 @@
NSString
*
const
fluwxKeyTitle
=
@"title"
;
NSString
*
const
fluwxKeyTitle
=
@"title"
;
NSString
*
const
fluwxKeyImage
=
@
"image"
;
NSString
*
const
fluwxKeyImage
=
@
"image"
;
NSString
*
const
fluwxKeyImageData
=
@
"imageData"
;
NSString
*
const
fluwxKeyImageData
=
@
"imageData"
;
NSString
*
const
fluwxKeyThumbnail
=
@"thumbnail"
;
NSString
*
const
fluwxKeyDescription
=
@"description"
;
NSString
*
const
fluwxKeyDescription
=
@"description"
;
NSString
*
const
fluwxKeyMsgSignature
=
@"msgSignature"
;
NSString
*
const
fluwxKeyMsgSignature
=
@"msgSignature"
;
NSString
*
const
fluwxKeyThumbData
=
@"thumbData"
;
NSString
*
const
fluwxKeyThumbData
=
@"thumbData"
;
...
@@ -29,8 +28,6 @@ NSString *const fluwxKeyTimeline = @"timeline";
...
@@ -29,8 +28,6 @@ NSString *const fluwxKeyTimeline = @"timeline";
NSString
*
const
fluwxKeySession
=
@"session"
;
NSString
*
const
fluwxKeySession
=
@"session"
;
NSString
*
const
fluwxKeyFavorite
=
@"favorite"
;
NSString
*
const
fluwxKeyFavorite
=
@"favorite"
;
NSString
*
const
fluwxKeyCompressThumbnail
=
@"compressThumbnail"
;
NSString
*
const
keySource
=
@"source"
;
NSString
*
const
keySource
=
@"source"
;
NSString
*
const
keySuffix
=
@"suffix"
;
NSString
*
const
keySuffix
=
@"suffix"
;
...
@@ -39,7 +36,9 @@ CGFloat thumbnailWidth;
...
@@ -39,7 +36,9 @@ CGFloat thumbnailWidth;
NSUInteger
defaultThumbnailSize
=
32
*
1024
;
NSUInteger
defaultThumbnailSize
=
32
*
1024
;
@interface
FluwxPlugin
()
<
WXApiDelegate
,
WechatAuthAPIDelegate
>
@interface
FluwxPlugin
()
<
WXApiDelegate
,
WechatAuthAPIDelegate
>
@property
(
strong
,
nonatomic
)
NSString
*
extMsg
;
@property
(
strong
,
nonatomic
)
NSString
*
extMsg
;
@end
@end
typedef
void
(
^
FluwxWXReqRunnable
)(
void
);
typedef
void
(
^
FluwxWXReqRunnable
)(
void
);
...
@@ -66,12 +65,11 @@ BOOL handleOpenURLByFluwx = YES;
...
@@ -66,12 +65,11 @@ BOOL handleOpenURLByFluwx = YES;
NSObject
<
FlutterPluginRegistrar
>
*
_fluwxRegistrar
;
NSObject
<
FlutterPluginRegistrar
>
*
_fluwxRegistrar
;
+
(
void
)
registerWithRegistrar
:(
NSObject
<
FlutterPluginRegistrar
>
*
)
registrar
{
+
(
void
)
registerWithRegistrar
:(
NSObject
<
FlutterPluginRegistrar
>
*
)
registrar
{
_fluwxRegistrar
=
registrar
;
_fluwxRegistrar
=
registrar
;
FlutterMethodChannel
*
channel
=
FlutterMethodChannel
*
channel
=
[
FlutterMethodChannel
methodChannelWithName
:
@"com.jarvanmo/fluwx"
[
FlutterMethodChannel
methodChannelWithName
:
@"com.jarvanmo/fluwx"
binaryMessenger
:[
registrar
messenger
]];
binaryMessenger
:[
registrar
messenger
]];
FluwxPlugin
*
instance
=
[[
FluwxPlugin
alloc
]
initWithChannel
:
channel
];
FluwxPlugin
*
instance
=
[[
FluwxPlugin
alloc
]
initWithChannel
:
channel
];
[
registrar
addApplicationDelegate
:
instance
];
[
registrar
addApplicationDelegate
:
instance
];
[
registrar
addMethodCallDelegate
:
instance
channel
:
channel
];
[
registrar
addMethodCallDelegate
:
instance
channel
:
channel
];
...
@@ -96,7 +94,6 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -96,7 +94,6 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
}
}
-
(
void
)
handleMethodCall
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
-
(
void
)
handleMethodCall
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
if
([
@"registerApp"
isEqualToString
:
call
.
method
])
{
if
([
@"registerApp"
isEqualToString
:
call
.
method
])
{
[
self
registerApp
:
call
result
:
result
];
[
self
registerApp
:
call
result
:
result
];
}
else
if
([
@"isWeChatInstalled"
isEqualToString
:
call
.
method
])
{
}
else
if
([
@"isWeChatInstalled"
isEqualToString
:
call
.
method
])
{
...
@@ -119,9 +116,9 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -119,9 +116,9 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
[
self
handleautoDeductV2
:
call
result
:
result
];
[
self
handleautoDeductV2
:
call
result
:
result
];
}
else
if
([
@"openBusinessView"
isEqualToString
:
call
.
method
])
{
}
else
if
([
@"openBusinessView"
isEqualToString
:
call
.
method
])
{
[
self
handleOpenBusinessView
:
call
result
:
result
];
[
self
handleOpenBusinessView
:
call
result
:
result
];
}
else
if
([
@"authByPhoneLogin"
isEqualToString
:
call
.
method
])
{
}
else
if
([
@"authByPhoneLogin"
isEqualToString
:
call
.
method
])
{
[
self
handleAuthByPhoneLogin
:
call
result
:
result
];
[
self
handleAuthByPhoneLogin
:
call
result
:
result
];
}
else
if
([
@"getExtMsg"
isEqualToString
:
call
.
method
])
{
}
else
if
([
@"getExtMsg"
isEqualToString
:
call
.
method
])
{
[
self
handelGetExtMsgWithCall
:
call
result
:
result
];
[
self
handelGetExtMsgWithCall
:
call
result
:
result
];
}
else
if
([
call
.
method
hasPrefix
:
@"share"
])
{
}
else
if
([
call
.
method
hasPrefix
:
@"share"
])
{
[
self
handleShare
:
call
result
:
result
];
[
self
handleShare
:
call
result
:
result
];
...
@@ -133,24 +130,23 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -133,24 +130,23 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
[
self
handleOpenRankListCall
:
call
result
:
result
];
[
self
handleOpenRankListCall
:
call
result
:
result
];
}
else
if
([
@"openUrl"
isEqualToString
:
call
.
method
])
{
}
else
if
([
@"openUrl"
isEqualToString
:
call
.
method
])
{
[
self
handleOpenUrlCall
:
call
result
:
result
];
[
self
handleOpenUrlCall
:
call
result
:
result
];
}
else
if
([
@"openWeChatInvoice"
isEqualToString
:
call
.
method
])
{
}
else
if
([
@"openWeChatInvoice"
isEqualToString
:
call
.
method
])
{
[
self
openWeChatInvoice
:
call
result
:
result
];
[
self
openWeChatInvoice
:
call
result
:
result
];
}
else
if
([
@"selfCheck"
isEqualToString
:
call
.
method
])
{
}
else
if
([
@"selfCheck"
isEqualToString
:
call
.
method
])
{
#ifndef __OPTIMIZE__
#ifndef __OPTIMIZE__
[
WXApi
checkUniversalLinkReady
:
^
(
WXULCheckStep
step
,
WXCheckULStepResult
*
result
)
{
[
WXApi
checkUniversalLinkReady
:
^
(
WXULCheckStep
step
,
WXCheckULStepResult
*
result
)
{
NSString
*
log
=
[
NSString
stringWithFormat
:
@"%@, %u, %@, %@"
,
@
(
step
),
result
.
success
,
result
.
errorInfo
,
result
.
suggestion
];
NSString
*
log
=
[
NSString
stringWithFormat
:
@"%@, %u, %@, %@"
,
@
(
step
),
result
.
success
,
result
.
errorInfo
,
result
.
suggestion
];
[
self
logToFlutterWithDetail
:
log
];
[
self
logToFlutterWithDetail
:
log
];
}];
}];
#endif
#endif
result
(
nil
);
result
(
nil
);
}
else
if
([
@"attemptToResumeMsgFromWx"
isEqualToString
:
call
.
method
])
{
}
else
if
([
@"attemptToResumeMsgFromWx"
isEqualToString
:
call
.
method
])
{
if
(
_attemptToResumeMsgFromWxRunnable
!=
nil
)
{
if
(
_attemptToResumeMsgFromWxRunnable
!=
nil
)
{
_attemptToResumeMsgFromWxRunnable
();
_attemptToResumeMsgFromWxRunnable
();
_attemptToResumeMsgFromWxRunnable
=
nil
;
_attemptToResumeMsgFromWxRunnable
=
nil
;
}
}
result
(
nil
);
result
(
nil
);
}
}
else
if
([
@"payWithFluwx"
isEqualToString
:
call
.
method
])
{
else
if
([
@"payWithFluwx"
isEqualToString
:
call
.
method
])
{
#ifndef NO_PAY
#ifndef NO_PAY
[
self
handlePayment
:
call
result
:
result
];
[
self
handlePayment
:
call
result
:
result
];
#else
#else
...
@@ -162,21 +158,23 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -162,21 +158,23 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
#else
#else
result
(
@NO
);
result
(
@NO
);
#endif
#endif
}
}
else
{
else
{
result
(
FlutterMethodNotImplemented
);
result
(
FlutterMethodNotImplemented
);
}
}
}
}
-
(
void
)
openWeChatInvoice
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
-
(
void
)
openWeChatInvoice
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
NSString
*
appId
=
call
.
arguments
[
@"appId"
];
NSString
*
appId
=
call
.
arguments
[
@"appId"
];
if
([
FluwxStringUtil
isBlank
:
appId
])
{
if
([
FluwxStringUtil
isBlank
:
appId
])
{
result
([
FlutterError
errorWithCode
:
@"invalid app id"
message
:
@"are you sure your app id is correct ? "
details
:
appId
]);
result
([
FlutterError
errorWithCode
:
@"invalid app id"
message
:
@"are you sure your app id is correct ? "
details:
appId
]);
return
;
return
;
}
}
WXChooseInvoiceReq
*
chooseInvoiceReq
=
[[
WXChooseInvoiceReq
alloc
]
init
];
WXChooseInvoiceReq
*
chooseInvoiceReq
=
[[
WXChooseInvoiceReq
alloc
]
init
];
chooseInvoiceReq
.
appID
=
appId
;
chooseInvoiceReq
.
appID
=
appId
;
chooseInvoiceReq
.
timeStamp
=
[[
NSDate
date
]
timeIntervalSince1970
];
chooseInvoiceReq
.
timeStamp
=
[[
NSDate
date
]
timeIntervalSince1970
];
...
@@ -190,41 +188,47 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -190,41 +188,47 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
-
(
void
)
registerApp
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
-
(
void
)
registerApp
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
NSNumber
*
doOnIOS
=
call
.
arguments
[
@"iOS"
];
NSNumber
*
doOnIOS
=
call
.
arguments
[
@"iOS"
];
if
(
!
[
doOnIOS
boolValue
])
{
if
(
!
[
doOnIOS
boolValue
])
{
result
(
@NO
);
result
(
@NO
);
return
;
return
;
}
}
NSString
*
appId
=
call
.
arguments
[
@"appId"
];
NSString
*
appId
=
call
.
arguments
[
@"appId"
];
if
([
FluwxStringUtil
isBlank
:
appId
])
{
if
([
FluwxStringUtil
isBlank
:
appId
])
{
result
([
FlutterError
errorWithCode
:
@"invalid app id"
message
:
@"are you sure your app id is correct ? "
details
:
appId
]);
result
([
FlutterError
errorWithCode
:
@"invalid app id"
message
:
@"are you sure your app id is correct ? "
details:
appId
]);
return
;
return
;
}
}
NSString
*
universalLink
=
call
.
arguments
[
@"universalLink"
];
NSString
*
universalLink
=
call
.
arguments
[
@"universalLink"
];
if
([
FluwxStringUtil
isBlank
:
universalLink
])
{
if
([
FluwxStringUtil
isBlank
:
universalLink
])
{
result
([
FlutterError
errorWithCode
:
@"invalid universal link"
message
:
@"are you sure your universal link is correct ? "
details
:
universalLink
]);
result
([
FlutterError
errorWithCode
:
@"invalid universal link"
message
:
@"are you sure your universal link is correct ? "
details:
universalLink
]);
return
;
return
;
}
}
BOOL
isWeChatRegistered
=
[
WXApi
registerApp
:
appId
universalLink
:
universalLink
];
BOOL
isWeChatRegistered
=
[
WXApi
registerApp
:
appId
universalLink
:
universalLink
];
// If registration fails, we can return immediately
// If registration fails, we can return immediately
if
(
!
isWeChatRegistered
)
{
if
(
!
isWeChatRegistered
)
{
result
(
@
(
isWeChatRegistered
));
result
(
@
(
isWeChatRegistered
));
_isRunning
=
NO
;
_isRunning
=
NO
;
return
;
return
;
}
}
// Otherwise, since WXApi is now registered successfully,
// Otherwise, since WXApi is now registered successfully,
// we can (and should) immediately handle the previously cached `app:openURL` event (if any)
// we can (and should) immediately handle the previously cached `app:openURL` event (if any)
if
(
_cachedOpenUrlRequest
!=
nil
)
{
if
(
_cachedOpenUrlRequest
!=
nil
)
{
_cachedOpenUrlRequest
();
_cachedOpenUrlRequest
();
_cachedOpenUrlRequest
=
nil
;
_cachedOpenUrlRequest
=
nil
;
}
}
// Set `_isRunning` after calling `_cachedOpenUrlRequest` to ensure that
// Set `_isRunning` after calling `_cachedOpenUrlRequest` to ensure that
// the `onReq` triggered by this call to `_cachedOpenUrlRequest` will
// the `onReq` triggered by this call to `_cachedOpenUrlRequest` will
// be stored in `_attemptToResumeMsgFromWxRunnable` which can be obtained
// be stored in `_attemptToResumeMsgFromWxRunnable` which can be obtained
...
@@ -233,7 +237,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -233,7 +237,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
// At the same time, this also coincides with the approach on the Android side:
// At the same time, this also coincides with the approach on the Android side:
// cold start events are cached and triggered through `attemptToResumeMsgFromWx`
// cold start events are cached and triggered through `attemptToResumeMsgFromWx`
_isRunning
=
isWeChatRegistered
;
_isRunning
=
isWeChatRegistered
;
result
(
@
(
isWeChatRegistered
));
result
(
@
(
isWeChatRegistered
));
}
}
...
@@ -244,30 +248,27 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -244,30 +248,27 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
-
(
void
)
openWeChatCustomerServiceChat
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
-
(
void
)
openWeChatCustomerServiceChat
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
NSString
*
url
=
call
.
arguments
[
@"url"
];
NSString
*
url
=
call
.
arguments
[
@"url"
];
NSString
*
corpId
=
call
.
arguments
[
@"corpId"
];
NSString
*
corpId
=
call
.
arguments
[
@"corpId"
];
WXOpenCustomerServiceReq
*
req
=
[[
WXOpenCustomerServiceReq
alloc
]
init
];
WXOpenCustomerServiceReq
*
req
=
[[
WXOpenCustomerServiceReq
alloc
]
init
];
req
.
corpid
=
corpId
;
//企业ID
req
.
corpid
=
corpId
;
//企业ID
req
.
url
=
url
;
//客服URL
req
.
url
=
url
;
//客服URL
return
[
WXApi
sendReq
:
req
completion
:
^
(
BOOL
success
)
{
return
[
WXApi
sendReq
:
req
completion
:
^
(
BOOL
success
)
{
result
(
@
(
success
));
result
(
@
(
success
));
}];
}];
}
}
-
(
void
)
checkSupportOpenBusinessView
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
-
(
void
)
checkSupportOpenBusinessView
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
if
(
!
[
WXApi
isWXAppInstalled
])
{
if
(
!
[
WXApi
isWXAppInstalled
])
{
result
([
FlutterError
errorWithCode
:
@"WeChat Not Installed"
message
:
@"Please install the WeChat first"
details
:
nil
]);
result
([
FlutterError
errorWithCode
:
@"WeChat Not Installed"
message
:
@"Please install the WeChat first"
details
:
nil
]);
}
else
{
}
else
{
result
(
@
(
true
));
result
(
@
(
true
));
}
}
}
}
#ifndef NO_PAY
#ifndef NO_PAY
-
(
void
)
handlePayment
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
-
(
void
)
handlePayment
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
NSNumber
*
timestamp
=
call
.
arguments
[
@"timeStamp"
];
NSNumber
*
timestamp
=
call
.
arguments
[
@"timeStamp"
];
NSString
*
partnerId
=
call
.
arguments
[
@"partnerId"
];
NSString
*
partnerId
=
call
.
arguments
[
@"partnerId"
];
NSString
*
prepayId
=
call
.
arguments
[
@"prepayId"
];
NSString
*
prepayId
=
call
.
arguments
[
@"prepayId"
];
NSString
*
packageValue
=
call
.
arguments
[
@"packageValue"
];
NSString
*
packageValue
=
call
.
arguments
[
@"packageValue"
];
...
@@ -275,7 +276,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -275,7 +276,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
UInt32
timeStamp
=
[
timestamp
unsignedIntValue
];
UInt32
timeStamp
=
[
timestamp
unsignedIntValue
];
NSString
*
sign
=
call
.
arguments
[
@"sign"
];
NSString
*
sign
=
call
.
arguments
[
@"sign"
];
[
FluwxDelegate
defaultManager
].
extData
=
call
.
arguments
[
@"extData"
];
[
FluwxDelegate
defaultManager
].
extData
=
call
.
arguments
[
@"extData"
];
NSString
*
appId
=
call
.
arguments
[
@"appId"
];
NSString
*
appId
=
call
.
arguments
[
@"appId"
];
PayReq
*
req
=
[[
PayReq
alloc
]
init
];
PayReq
*
req
=
[[
PayReq
alloc
]
init
];
req
.
openID
=
(
appId
==
(
id
)
[
NSNull
null
])
?
nil
:
appId
;
req
.
openID
=
(
appId
==
(
id
)
[
NSNull
null
])
?
nil
:
appId
;
...
@@ -285,16 +286,16 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -285,16 +286,16 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
req
.
timeStamp
=
timeStamp
;
req
.
timeStamp
=
timeStamp
;
req
.
package
=
packageValue
;
req
.
package
=
packageValue
;
req
.
sign
=
sign
;
req
.
sign
=
sign
;
[
WXApi
sendReq
:
req
completion
:
^
(
BOOL
done
)
{
[
WXApi
sendReq
:
req
completion
:
^
(
BOOL
done
)
{
result
(
@
(
done
));
result
(
@
(
done
));
}];
}];
}
}
-
(
void
)
handleHongKongWalletPayment
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
-
(
void
)
handleHongKongWalletPayment
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
NSString
*
partnerId
=
call
.
arguments
[
@"prepayId"
];
NSString
*
partnerId
=
call
.
arguments
[
@"prepayId"
];
WXOpenBusinessWebViewReq
*
req
=
[[
WXOpenBusinessWebViewReq
alloc
]
init
];
WXOpenBusinessWebViewReq
*
req
=
[[
WXOpenBusinessWebViewReq
alloc
]
init
];
req
.
businessType
=
1
;
req
.
businessType
=
1
;
NSMutableDictionary
*
queryInfoDic
=
[
NSMutableDictionary
dictionary
];
NSMutableDictionary
*
queryInfoDic
=
[
NSMutableDictionary
dictionary
];
...
@@ -309,8 +310,8 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -309,8 +310,8 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
-
(
void
)
handleLaunchMiniProgram
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
-
(
void
)
handleLaunchMiniProgram
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
NSString
*
userName
=
call
.
arguments
[
@"userName"
];
NSString
*
userName
=
call
.
arguments
[
@"userName"
];
NSString
*
path
=
call
.
arguments
[
@"path"
];
NSString
*
path
=
call
.
arguments
[
@"path"
];
//
WXMiniProgramType *miniProgramType = call.arguments[@"miniProgramType"];
//
WXMiniProgramType *miniProgramType = call.arguments[@"miniProgramType"];
NSNumber
*
typeInt
=
call
.
arguments
[
@"miniProgramType"
];
NSNumber
*
typeInt
=
call
.
arguments
[
@"miniProgramType"
];
WXMiniProgramType
miniProgramType
=
WXMiniProgramTypeRelease
;
WXMiniProgramType
miniProgramType
=
WXMiniProgramTypeRelease
;
if
([
typeInt
isEqualToNumber
:
@1
])
{
if
([
typeInt
isEqualToNumber
:
@1
])
{
...
@@ -318,13 +319,12 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -318,13 +319,12 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
}
else
if
([
typeInt
isEqualToNumber
:
@2
])
{
}
else
if
([
typeInt
isEqualToNumber
:
@2
])
{
miniProgramType
=
WXMiniProgramTypePreview
;
miniProgramType
=
WXMiniProgramTypePreview
;
}
}
WXLaunchMiniProgramReq
*
launchMiniProgramReq
=
[
WXLaunchMiniProgramReq
object
];
WXLaunchMiniProgramReq
*
launchMiniProgramReq
=
[
WXLaunchMiniProgramReq
object
];
launchMiniProgramReq
.
userName
=
userName
;
launchMiniProgramReq
.
userName
=
userName
;
launchMiniProgramReq
.
path
=
(
path
==
(
id
)
[
NSNull
null
])
?
nil
:
path
;
launchMiniProgramReq
.
path
=
(
path
==
(
id
)
[
NSNull
null
])
?
nil
:
path
;
launchMiniProgramReq
.
miniProgramType
=
miniProgramType
;
launchMiniProgramReq
.
miniProgramType
=
miniProgramType
;
[
WXApi
sendReq
:
launchMiniProgramReq
completion
:
^
(
BOOL
done
)
{
[
WXApi
sendReq
:
launchMiniProgramReq
completion
:
^
(
BOOL
done
)
{
result
(
@
(
done
));
result
(
@
(
done
));
}];
}];
...
@@ -337,17 +337,17 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -337,17 +337,17 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
NSNumber
*
scene
=
[
params
valueForKey
:
@"scene"
];
NSNumber
*
scene
=
[
params
valueForKey
:
@"scene"
];
NSString
*
templateId
=
[
params
valueForKey
:
@"templateId"
];
NSString
*
templateId
=
[
params
valueForKey
:
@"templateId"
];
NSString
*
reserved
=
[
params
valueForKey
:
@"reserved"
];
NSString
*
reserved
=
[
params
valueForKey
:
@"reserved"
];
WXSubscribeMsgReq
*
req
=
[
WXSubscribeMsgReq
new
];
WXSubscribeMsgReq
*
req
=
[
WXSubscribeMsgReq
new
];
#if __LP64__
#if __LP64__
req
.
scene
=
[
scene
unsignedIntValue
];
req
.
scene
=
[
scene
unsignedIntValue
];
#else
#else
req
.
scene
=
[
scene
unsignedLongValue
];
req
.
scene
=
[
scene
unsignedLongValue
];
#endif
#endif
req
.
templateId
=
templateId
;
req
.
templateId
=
templateId
;
req
.
reserved
=
reserved
;
req
.
reserved
=
reserved
;
req
.
openID
=
appId
;
req
.
openID
=
appId
;
[
WXApi
sendReq
:
req
completion
:
^
(
BOOL
done
)
{
[
WXApi
sendReq
:
req
completion
:
^
(
BOOL
done
)
{
result
(
@
(
done
));
result
(
@
(
done
));
}];
}];
...
@@ -367,7 +367,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -367,7 +367,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
-
(
void
)
handleautoDeductV2
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
-
(
void
)
handleautoDeductV2
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
NSMutableDictionary
*
paramsFromDart
=
call
.
arguments
[
@"queryInfo"
];
NSMutableDictionary
*
paramsFromDart
=
call
.
arguments
[
@"queryInfo"
];
// [paramsFromDart removeObjectForKey:@"businessType"];
// [paramsFromDart removeObjectForKey:@"businessType"];
WXOpenBusinessWebViewReq
*
req
=
[[
WXOpenBusinessWebViewReq
alloc
]
init
];
WXOpenBusinessWebViewReq
*
req
=
[[
WXOpenBusinessWebViewReq
alloc
]
init
];
NSNumber
*
businessType
=
call
.
arguments
[
@"businessType"
];
NSNumber
*
businessType
=
call
.
arguments
[
@"businessType"
];
req
.
businessType
=
[
businessType
unsignedIntValue
];
req
.
businessType
=
[
businessType
unsignedIntValue
];
...
@@ -379,7 +379,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -379,7 +379,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
-
(
void
)
handleOpenBusinessView
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
-
(
void
)
handleOpenBusinessView
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
NSDictionary
*
params
=
call
.
arguments
;
NSDictionary
*
params
=
call
.
arguments
;
WXOpenBusinessViewReq
*
req
=
[
WXOpenBusinessViewReq
object
];
WXOpenBusinessViewReq
*
req
=
[
WXOpenBusinessViewReq
object
];
NSString
*
businessType
=
[
params
valueForKey
:
@"businessType"
];
NSString
*
businessType
=
[
params
valueForKey
:
@"businessType"
];
NSString
*
query
=
[
params
valueForKey
:
@"query"
];
NSString
*
query
=
[
params
valueForKey
:
@"query"
];
...
@@ -400,7 +400,10 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -400,7 +400,10 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
// Deprecated since iOS 9
// Deprecated since iOS 9
// See https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623073-application?language=objc
// See https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623073-application?language=objc
// Use `application:openURL:options:` instead.
// 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.
// 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
];
}
}
...
@@ -415,27 +418,25 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -415,27 +418,25 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
// Available on iOS 9.0 and later
// Available on iOS 9.0 and later
// See https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623112-application?language=objc
// 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
{
// ↓ previous solution -- according to document, this may fail if the WXApi hasn't registered yet.
// ↓ previous solution -- according to document, this may fail if the WXApi hasn't registered yet.
// return [WXApi handleOpenURL:url delegate:self];
// return [WXApi handleOpenURL:url delegate:self];
if
(
_isRunning
)
{
if
(
_isRunning
)
{
// registered -- directly handle open url request by WXApi
// registered -- directly handle open url request by WXApi
return
[
WXApi
handleOpenURL
:
url
delegate
:
self
];
return
[
WXApi
handleOpenURL
:
url
delegate
:
self
];
}
else
{
}
else
{
// unregistered -- cache open url request and handle it once WXApi is registered
// unregistered -- cache open url request and handle it once WXApi is registered
__weak
typeof
(
self
)
weakSelf
=
self
;
__weak
typeof
(
self
)
weakSelf
=
self
;
_cachedOpenUrlRequest
=
^
()
{
_cachedOpenUrlRequest
=
^
()
{
__strong
typeof
(
weakSelf
)
strongSelf
=
weakSelf
;
__strong
typeof
(
weakSelf
)
strongSelf
=
weakSelf
;
[
WXApi
handleOpenURL
:
url
delegate
:
strongSelf
];
[
WXApi
handleOpenURL
:
url
delegate
:
strongSelf
];
};
};
// Let's hold this until the PR contributor send feedback.
// Let's hold this until the PR contributor send feedback.
// if ([url.absoluteString contains:[self fetchWeChatAppId]]){
//return [url.absoluteString contains:[self fetchWeChatAppId]];
// return YES;
// } else {
// return NO;
// }
// simply return YES to indicate that we can handle open url request later
// simply return YES to indicate that we can handle open url request later
return
NO
;
return
NO
;
}
}
...
@@ -449,7 +450,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -449,7 +450,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
#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
// TODO: (if need) cache userActivity and handle it once WXApi is registered
[
WXApi
handleOpenUniversalLink
:
userActivity
delegate
:
self
];
[
WXApi
handleOpenUniversalLink
:
userActivity
delegate
:
self
];
}
}
...
@@ -460,18 +461,18 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -460,18 +461,18 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
OpenWebviewReq
*
req
=
[[
OpenWebviewReq
alloc
]
init
];
OpenWebviewReq
*
req
=
[[
OpenWebviewReq
alloc
]
init
];
req
.
url
=
call
.
arguments
[
@"url"
];
req
.
url
=
call
.
arguments
[
@"url"
];
[
WXApi
sendReq
:
req
[
WXApi
sendReq
:
req
completion
:
^
(
BOOL
success
){
completion
:
^
(
BOOL
success
)
{
result
(
@
(
success
));
result
(
@
(
success
));
}];
}];
}
}
-
(
void
)
handleOpenRankListCall
:
(
FlutterMethodCall
*
)
call
-
(
void
)
handleOpenRankListCall
:
(
FlutterMethodCall
*
)
call
result
:
(
FlutterResult
)
result
{
result
:
(
FlutterResult
)
result
{
OpenRankListReq
*
req
=
[[
OpenRankListReq
alloc
]
init
];
OpenRankListReq
*
req
=
[[
OpenRankListReq
alloc
]
init
];
[
WXApi
sendReq
:
req
[
WXApi
sendReq
:
req
completion
:
^
(
BOOL
success
){
completion
:
^
(
BOOL
success
)
{
result
(
@
(
success
));
result
(
@
(
success
));
}];
}];
}
}
-
(
BOOL
)
handleOpenURL
:
(
NSNotification
*
)
aNotification
{
-
(
BOOL
)
handleOpenURL
:
(
NSNotification
*
)
aNotification
{
...
@@ -485,7 +486,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -485,7 +486,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
}
}
-
(
void
)
logToFlutterWithDetail
:
(
NSString
*
)
detail
{
-
(
void
)
logToFlutterWithDetail
:
(
NSString
*
)
detail
{
if
(
_channel
!=
nil
)
{
if
(
_channel
!=
nil
)
{
NSDictionary
*
result
=
@{
NSDictionary
*
result
=
@{
@"detail"
:
detail
@"detail"
:
detail
};
};
...
@@ -514,300 +515,233 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -514,300 +515,233 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
-
(
void
)
shareText
:
(
FlutterMethodCall
*
)
call
result
:
(
FlutterResult
)
result
{
-
(
void
)
shareText
:
(
FlutterMethodCall
*
)
call
result
:
(
FlutterResult
)
result
{
NSString
*
text
=
call
.
arguments
[
@"source"
];
NSString
*
text
=
call
.
arguments
[
@"source"
];
NSNumber
*
scene
=
call
.
arguments
[
fluwxKeyScene
];
NSNumber
*
scene
=
call
.
arguments
[
fluwxKeyScene
];
[
self
sendText
:
text
InScene
:[
self
intToWeChatScene
:
scene
]
completion
:^
(
BOOL
done
)
{
[
self
sendText
:
text
InScene
:[
self
intToWeChatScene
:
scene
]
completion
:^
(
BOOL
done
)
{
result
(
@
(
done
));
result
(
@
(
done
));
}];
}];
}
}
-
(
void
)
shareImage
:
(
FlutterMethodCall
*
)
call
result
:
(
FlutterResult
)
result
{
-
(
void
)
shareImage
:
(
FlutterMethodCall
*
)
call
result
:
(
FlutterResult
)
result
{
NSNumber
*
scene
=
call
.
arguments
[
fluwxKeyScene
];
NSDictionary
*
sourceImage
=
call
.
arguments
[
keySource
];
FlutterStandardTypedData
*
flutterImageData
=
sourceImage
[
@"uint8List"
];
NSData
*
imageData
=
nil
;
if
(
flutterImageData
!=
nil
)
{
imageData
=
flutterImageData
.
data
;
}
NSString
*
imageDataHash
=
sourceImage
[
@"imgDataHash"
];
FlutterStandardTypedData
*
flutterThumbData
=
call
.
arguments
[
fluwxKeyThumbData
];
NSData
*
thumbData
=
nil
;
if
(
!
[
flutterThumbData
isKindOfClass
:[
NSNull
class
]])
{
thumbData
=
flutterThumbData
.
data
;
}
dispatch_queue_t
globalQueue
=
dispatch_get_global_queue
(
0
,
0
);
dispatch_queue_t
globalQueue
=
dispatch_get_global_queue
(
0
,
0
);
dispatch_async
(
globalQueue
,
^
{
dispatch_async
(
globalQueue
,
^
{
NSDictionary
*
sourceImage
=
call
.
arguments
[
keySource
];
FlutterStandardTypedData
*
flutterImageData
=
sourceImage
[
@"uint8List"
];
NSData
*
imageData
=
nil
;
if
(
flutterImageData
!=
nil
){
imageData
=
flutterImageData
.
data
;
}
NSString
*
imageDataHash
=
sourceImage
[
@"imgDataHash"
];
dispatch_async
(
dispatch_get_main_queue
(),
^
{
dispatch_async
(
dispatch_get_main_queue
(),
^
{
FlutterStandardTypedData
*
flutterThumbData
=
call
.
arguments
[
fluwxKeyThumbData
];
NSData
*
thumbData
=
nil
;
if
(
!
[
flutterThumbData
isKindOfClass
:[
NSNull
class
]]){
thumbData
=
flutterThumbData
.
data
;
}
NSNumber
*
scene
=
call
.
arguments
[
fluwxKeyScene
];
[
self
sendImageData
:
imageData
[
self
sendImageData
:
imageData
ImgDataHash
:
imageDataHash
ImgDataHash
:
imageDataHash
TagName
:
call
.
arguments
[
fluwxKeyMediaTagName
]
TagName
:
call
.
arguments
[
fluwxKeyMediaTagName
]
MessageExt
:
call
.
arguments
[
fluwxKeyMessageExt
]
MessageExt
:
call
.
arguments
[
fluwxKeyMessageExt
]
Action
:
call
.
arguments
[
fluwxKeyMessageAction
]
Action
:
call
.
arguments
[
fluwxKeyMessageAction
]
InScene
:
[
self
intToWeChatScene
:
scene
]
InScene
:
[
self
intToWeChatScene
:
scene
]
title
:
call
.
arguments
[
fluwxKeyTitle
]
title
:
call
.
arguments
[
fluwxKeyTitle
]
description
:
call
.
arguments
[
fluwxKeyDescription
]
description
:
call
.
arguments
[
fluwxKeyDescription
]
MsgSignature
:
call
.
arguments
[
fluwxKeyMsgSignature
]
MsgSignature
:
call
.
arguments
[
fluwxKeyMsgSignature
]
ThumbData
:
thumbData
ThumbData
:
thumbData
ThumbDataHash
:
call
.
arguments
[
fluwxKeyThumbDataHash
]
ThumbDataHash
:
call
.
arguments
[
fluwxKeyThumbDataHash
]
completion
:^
(
BOOL
done
)
{
completion
:^
(
BOOL
done
)
{
result
(
@
(
done
));
result
(
@
(
done
));
}
}];
];
});
});
});
});
}
}
-
(
void
)
shareWebPage
:
(
FlutterMethodCall
*
)
call
result
:
(
FlutterResult
)
result
{
-
(
void
)
shareWebPage
:
(
FlutterMethodCall
*
)
call
result
:
(
FlutterResult
)
result
{
NSString
*
webPageUrl
=
call
.
arguments
[
@"webPage"
];
NSNumber
*
scene
=
call
.
arguments
[
fluwxKeyScene
];
FlutterStandardTypedData
*
flutterThumbData
=
call
.
arguments
[
fluwxKeyThumbData
];
NSData
*
thumbData
=
nil
;
if
(
!
[
flutterThumbData
isKindOfClass
:[
NSNull
class
]])
{
thumbData
=
flutterThumbData
.
data
;
}
dispatch_queue_t
globalQueue
=
dispatch_get_global_queue
(
0
,
0
);
dispatch_queue_t
globalQueue
=
dispatch_get_global_queue
(
0
,
0
);
dispatch_async
(
globalQueue
,
^
{
dispatch_async
(
globalQueue
,
^
{
UIImage
*
thumbnailImage
=
[
self
getCommonThumbnail
:
call
];
dispatch_async
(
dispatch_get_main_queue
(),
^
{
dispatch_async
(
dispatch_get_main_queue
(),
^
{
NSString
*
webPageUrl
=
call
.
arguments
[
@"webPage"
];
NSNumber
*
scene
=
call
.
arguments
[
fluwxKeyScene
];
FlutterStandardTypedData
*
flutterThumbData
=
call
.
arguments
[
fluwxKeyThumbData
];
NSData
*
thumbData
=
nil
;
if
(
!
[
flutterThumbData
isKindOfClass
:[
NSNull
class
]]){
thumbData
=
flutterThumbData
.
data
;
}
[
self
sendLinkURL
:
webPageUrl
[
self
sendLinkURL
:
webPageUrl
TagName
:
call
.
arguments
[
fluwxKeyMediaTagName
]
TagName
:
call
.
arguments
[
fluwxKeyMediaTagName
]
Title
:
call
.
arguments
[
fluwxKeyTitle
]
Title
:
call
.
arguments
[
fluwxKeyTitle
]
Description
:
call
.
arguments
[
fluwxKeyDescription
]
Description
:
call
.
arguments
[
fluwxKeyDescription
]
ThumbImage
:
thumbnailImage
MessageExt
:
call
.
arguments
[
fluwxKeyMessageExt
]
MessageExt
:
call
.
arguments
[
fluwxKeyMessageExt
]
MessageAction
:
call
.
arguments
[
fluwxKeyMessageAction
]
MessageAction
:
call
.
arguments
[
fluwxKeyMessageAction
]
InScene
:
[
self
intToWeChatScene
:
scene
]
InScene
:
[
self
intToWeChatScene
:
scene
]
MsgSignature
:
call
.
arguments
[
fluwxKeyMsgSignature
]
MsgSignature
:
call
.
arguments
[
fluwxKeyMsgSignature
]
ThumbData
:
thumbData
ThumbData
:
thumbData
ThumbDataHash
:
call
.
arguments
[
fluwxKeyThumbDataHash
]
ThumbDataHash
:
call
.
arguments
[
fluwxKeyThumbDataHash
]
completion
:^
(
BOOL
done
)
{
completion
:^
(
BOOL
done
)
{
result
(
@
(
done
));
result
(
@
(
done
));
}];
}];
});
});
});
});
}
}
-
(
void
)
shareMusic
:
(
FlutterMethodCall
*
)
call
result
:
(
FlutterResult
)
result
{
-
(
void
)
shareMusic
:
(
FlutterMethodCall
*
)
call
result
:
(
FlutterResult
)
result
{
NSNumber
*
scene
=
call
.
arguments
[
fluwxKeyScene
];
FlutterStandardTypedData
*
flutterThumbData
=
call
.
arguments
[
fluwxKeyThumbData
];
NSData
*
thumbData
=
nil
;
if
(
!
[
flutterThumbData
isKindOfClass
:[
NSNull
class
]])
{
thumbData
=
flutterThumbData
.
data
;
}
dispatch_queue_t
globalQueue
=
dispatch_get_global_queue
(
0
,
0
);
dispatch_queue_t
globalQueue
=
dispatch_get_global_queue
(
0
,
0
);
dispatch_async
(
globalQueue
,
^
{
dispatch_async
(
globalQueue
,
^
{
UIImage
*
thumbnailImage
=
[
self
getCommonThumbnail
:
call
];
dispatch_async
(
dispatch_get_main_queue
(),
^
{
dispatch_async
(
dispatch_get_main_queue
(),
^
{
FlutterStandardTypedData
*
flutterThumbData
=
call
.
arguments
[
fluwxKeyThumbData
];
NSData
*
thumbData
=
nil
;
if
(
!
[
flutterThumbData
isKindOfClass
:[
NSNull
class
]]){
thumbData
=
flutterThumbData
.
data
;
}
NSNumber
*
scene
=
call
.
arguments
[
fluwxKeyScene
];
[
self
sendMusicURL
:
call
.
arguments
[
@"musicUrl"
]
[
self
sendMusicURL
:
call
.
arguments
[
@"musicUrl"
]
dataURL
:
call
.
arguments
[
@"musicDataUrl"
]
dataURL
:
call
.
arguments
[
@"musicDataUrl"
]
MusicLowBandUrl
:
call
.
arguments
[
@"musicLowBandUrl"
]
MusicLowBandUrl
:
call
.
arguments
[
@"musicLowBandUrl"
]
MusicLowBandDataUrl
:
call
.
arguments
[
@"musicLowBandDataUrl"
]
MusicLowBandDataUrl
:
call
.
arguments
[
@"musicLowBandDataUrl"
]
Title
:
call
.
arguments
[
fluwxKeyTitle
]
Title
:
call
.
arguments
[
fluwxKeyTitle
]
Description
:
call
.
arguments
[
fluwxKeyDescription
]
Description
:
call
.
arguments
[
fluwxKeyDescription
]
ThumbImage
:
thumbnailImage
MessageExt
:
call
.
arguments
[
fluwxKeyMessageExt
]
MessageExt
:
call
.
arguments
[
fluwxKeyMessageExt
]
MessageAction
:
call
.
arguments
[
fluwxKeyMessageAction
]
MessageAction
:
call
.
arguments
[
fluwxKeyMessageAction
]
TagName
:
call
.
arguments
[
fluwxKeyMediaTagName
]
TagName
:
call
.
arguments
[
fluwxKeyMediaTagName
]
InScene
:
[
self
intToWeChatScene
:
scene
]
InScene
:
[
self
intToWeChatScene
:
scene
]
MsgSignature
:
call
.
arguments
[
fluwxKeyMsgSignature
]
MsgSignature
:
call
.
arguments
[
fluwxKeyMsgSignature
]
ThumbData
:
thumbData
ThumbData
:
thumbData
ThumbDataHash
:
call
.
arguments
[
fluwxKeyThumbDataHash
]
ThumbDataHash
:
call
.
arguments
[
fluwxKeyThumbDataHash
]
completion
:^
(
BOOL
done
)
{
completion
:^
(
BOOL
done
)
{
result
(
@
(
done
));
result
(
@
(
done
));
}
}];
];
});
});
});
});
}
}
-
(
void
)
shareVideo
:
(
FlutterMethodCall
*
)
call
result
:
(
FlutterResult
)
result
{
-
(
void
)
shareVideo
:
(
FlutterMethodCall
*
)
call
result
:
(
FlutterResult
)
result
{
NSNumber
*
scene
=
call
.
arguments
[
fluwxKeyScene
];
FlutterStandardTypedData
*
flutterThumbData
=
call
.
arguments
[
fluwxKeyThumbData
];
NSData
*
thumbData
=
nil
;
if
(
!
[
flutterThumbData
isKindOfClass
:[
NSNull
class
]])
{
thumbData
=
flutterThumbData
.
data
;
}
dispatch_queue_t
globalQueue
=
dispatch_get_global_queue
(
0
,
0
);
dispatch_queue_t
globalQueue
=
dispatch_get_global_queue
(
0
,
0
);
dispatch_async
(
globalQueue
,
^
{
dispatch_async
(
globalQueue
,
^
{
UIImage
*
thumbnailImage
=
[
self
getCommonThumbnail
:
call
];
dispatch_async
(
dispatch_get_main_queue
(),
^
{
dispatch_async
(
dispatch_get_main_queue
(),
^
{
NSNumber
*
scene
=
call
.
arguments
[
fluwxKeyScene
];
FlutterStandardTypedData
*
flutterThumbData
=
call
.
arguments
[
fluwxKeyThumbData
];
NSData
*
thumbData
=
nil
;
if
(
!
[
flutterThumbData
isKindOfClass
:[
NSNull
class
]]){
thumbData
=
flutterThumbData
.
data
;
}
[
self
sendVideoURL
:
call
.
arguments
[
@"videoUrl"
]
[
self
sendVideoURL
:
call
.
arguments
[
@"videoUrl"
]
VideoLowBandUrl
:
call
.
arguments
[
@"videoLowBandUrl"
]
VideoLowBandUrl
:
call
.
arguments
[
@"videoLowBandUrl"
]
Title
:
call
.
arguments
[
fluwxKeyTitle
]
Title
:
call
.
arguments
[
fluwxKeyTitle
]
Description
:
call
.
arguments
[
fluwxKeyDescription
]
Description
:
call
.
arguments
[
fluwxKeyDescription
]
ThumbImage
:
thumbnailImage
MessageExt
:
call
.
arguments
[
fluwxKeyMessageExt
]
MessageExt
:
call
.
arguments
[
fluwxKeyMessageExt
]
MessageAction
:
call
.
arguments
[
fluwxKeyMessageAction
]
MessageAction
:
call
.
arguments
[
fluwxKeyMessageAction
]
TagName
:
call
.
arguments
[
fluwxKeyMediaTagName
]
TagName
:
call
.
arguments
[
fluwxKeyMediaTagName
]
InScene
:
[
self
intToWeChatScene
:
scene
]
InScene
:
[
self
intToWeChatScene
:
scene
]
MsgSignature
:
call
.
arguments
[
fluwxKeyMsgSignature
]
MsgSignature
:
call
.
arguments
[
fluwxKeyMsgSignature
]
ThumbData
:
thumbData
ThumbData
:
thumbData
ThumbDataHash
:
call
.
arguments
[
fluwxKeyThumbDataHash
]
ThumbDataHash
:
call
.
arguments
[
fluwxKeyThumbDataHash
]
completion
:^
(
BOOL
done
)
{
completion
:^
(
BOOL
done
)
{
result
(
@
(
done
));
result
(
@
(
done
));
}];
}];
});
});
});
});
}
}
-
(
void
)
shareFile
:
(
FlutterMethodCall
*
)
call
result
:
(
FlutterResult
)
result
{
-
(
void
)
shareFile
:
(
FlutterMethodCall
*
)
call
result
:
(
FlutterResult
)
result
{
NSDictionary
*
sourceFile
=
call
.
arguments
[
keySource
];
NSString
*
fileExtension
;
NSString
*
suffix
=
sourceFile
[
keySuffix
];
fileExtension
=
suffix
;
if
([
suffix
hasPrefix
:
@"."
])
{
NSRange
range
=
NSMakeRange
(
0
,
1
);
fileExtension
=
[
suffix
stringByReplacingCharactersInRange
:
range
withString
:
@""
];
}
NSData
*
data
=
[
self
getNsDataFromWeChatFile
:
sourceFile
];
NSNumber
*
scene
=
call
.
arguments
[
fluwxKeyScene
];
FlutterStandardTypedData
*
flutterThumbData
=
call
.
arguments
[
fluwxKeyThumbData
];
NSData
*
thumbData
=
nil
;
if
(
!
[
flutterThumbData
isKindOfClass
:[
NSNull
class
]])
{
thumbData
=
flutterThumbData
.
data
;
}
dispatch_queue_t
globalQueue
=
dispatch_get_global_queue
(
0
,
0
);
dispatch_queue_t
globalQueue
=
dispatch_get_global_queue
(
0
,
0
);
dispatch_async
(
globalQueue
,
^
{
dispatch_async
(
globalQueue
,
^
{
NSDictionary
*
sourceFile
=
call
.
arguments
[
keySource
];
UIImage
*
thumbnailImage
=
[
self
getCommonThumbnail
:
call
];
NSString
*
fileExtension
;
NSString
*
suffix
=
sourceFile
[
keySuffix
];
fileExtension
=
suffix
;
if
([
suffix
hasPrefix
:
@"."
])
{
NSRange
range
=
NSMakeRange
(
0
,
1
);
fileExtension
=
[
suffix
stringByReplacingCharactersInRange
:
range
withString
:
@""
];
}
NSData
*
data
=
[
self
getNsDataFromWeChatFile
:
sourceFile
];
dispatch_async
(
dispatch_get_main_queue
(),
^
{
dispatch_async
(
dispatch_get_main_queue
(),
^
{
NSNumber
*
scene
=
call
.
arguments
[
fluwxKeyScene
];
FlutterStandardTypedData
*
flutterThumbData
=
call
.
arguments
[
fluwxKeyThumbData
];
NSData
*
thumbData
=
nil
;
if
(
!
[
flutterThumbData
isKindOfClass
:[
NSNull
class
]]){
thumbData
=
flutterThumbData
.
data
;
}
[
self
sendFileData
:
data
[
self
sendFileData
:
data
fileExtension
:
fileExtension
fileExtension
:
fileExtension
Title
:
call
.
arguments
[
fluwxKeyTitle
]
Title
:
call
.
arguments
[
fluwxKeyTitle
]
Description
:
call
.
arguments
[
fluwxKeyDescription
]
Description
:
call
.
arguments
[
fluwxKeyDescription
]
ThumbImage
:
thumbnailImage
InScene
:
[
self
intToWeChatScene
:
scene
]
InScene
:
[
self
intToWeChatScene
:
scene
]
MsgSignature
:
call
.
arguments
[
fluwxKeyMsgSignature
]
MsgSignature
:
call
.
arguments
[
fluwxKeyMsgSignature
]
ThumbData
:
thumbData
ThumbData
:
thumbData
ThumbDataHash
:
call
.
arguments
[
fluwxKeyThumbDataHash
]
ThumbDataHash
:
call
.
arguments
[
fluwxKeyThumbDataHash
]
completion
:^
(
BOOL
success
)
{
completion
:^
(
BOOL
success
)
{
result
(
@
(
success
));
result
(
@
(
success
));
}];
}];
});
});
});
});
}
}
-
(
void
)
shareMiniProgram
:
(
FlutterMethodCall
*
)
call
result
:
(
FlutterResult
)
result
{
-
(
void
)
shareMiniProgram
:
(
FlutterMethodCall
*
)
call
result
:
(
FlutterResult
)
result
{
NSNumber
*
scene
=
call
.
arguments
[
fluwxKeyScene
];
FlutterStandardTypedData
*
flutterThumbData
=
call
.
arguments
[
fluwxKeyThumbData
];
NSData
*
thumbData
=
nil
;
if
(
!
[
flutterThumbData
isKindOfClass
:[
NSNull
class
]])
{
thumbData
=
flutterThumbData
.
data
;
}
FlutterStandardTypedData
*
hdImageDataPayload
=
call
.
arguments
[
@"hdImageData"
];
NSData
*
hdImageData
=
nil
;
if
(
!
[
hdImageDataPayload
isKindOfClass
:[
NSNull
class
]])
{
hdImageData
=
hdImageDataPayload
.
data
;
}
NSNumber
*
typeInt
=
call
.
arguments
[
@"miniProgramType"
];
WXMiniProgramType
miniProgramType
=
WXMiniProgramTypeRelease
;
if
([
typeInt
isEqualToNumber
:
@1
])
{
miniProgramType
=
WXMiniProgramTypeTest
;
}
else
if
([
typeInt
isEqualToNumber
:
@2
])
{
miniProgramType
=
WXMiniProgramTypePreview
;
}
dispatch_queue_t
globalQueue
=
dispatch_get_global_queue
(
0
,
0
);
dispatch_queue_t
globalQueue
=
dispatch_get_global_queue
(
0
,
0
);
dispatch_async
(
globalQueue
,
^
{
dispatch_async
(
globalQueue
,
^
{
dispatch_async
(
dispatch_get_main_queue
(),
^
{
dispatch_async
(
dispatch_get_main_queue
(),
^
{
FlutterStandardTypedData
*
flutterThumbData
=
call
.
arguments
[
fluwxKeyThumbData
];
FlutterStandardTypedData
*
hdImageDataPayload
=
call
.
arguments
[
@"hdImageData"
];
NSData
*
thumbData
=
nil
;
NSData
*
hdImageData
=
nil
;
if
(
!
[
flutterThumbData
isKindOfClass
:[
NSNull
class
]]){
thumbData
=
flutterThumbData
.
data
;
}
if
(
!
[
hdImageDataPayload
isKindOfClass
:[
NSNull
class
]]){
hdImageData
=
hdImageDataPayload
.
data
;
}
NSNumber
*
scene
=
call
.
arguments
[
fluwxKeyScene
];
NSNumber
*
typeInt
=
call
.
arguments
[
@"miniProgramType"
];
WXMiniProgramType
miniProgramType
=
WXMiniProgramTypeRelease
;
if
([
typeInt
isEqualToNumber
:
@1
])
{
miniProgramType
=
WXMiniProgramTypeTest
;
}
else
if
([
typeInt
isEqualToNumber
:
@2
])
{
miniProgramType
=
WXMiniProgramTypePreview
;
}
[
self
sendMiniProgramWebpageUrl
:
call
.
arguments
[
@"webPageUrl"
]
[
self
sendMiniProgramWebpageUrl
:
call
.
arguments
[
@"webPageUrl"
]
userName
:
call
.
arguments
[
@"userName"
]
userName
:
call
.
arguments
[
@"userName"
]
path
:
call
.
arguments
[
@"path"
]
path
:
call
.
arguments
[
@"path"
]
title
:
call
.
arguments
[
fluwxKeyTitle
]
title
:
call
.
arguments
[
fluwxKeyTitle
]
Description
:
call
.
arguments
[
fluwxKeyDescription
]
Description
:
call
.
arguments
[
fluwxKeyDescription
]
withShareTicket
:
[
call
.
arguments
[
@"withShareTicket"
]
boolValue
]
withShareTicket
:
[
call
.
arguments
[
@"withShareTicket"
]
boolValue
]
miniProgramType
:
miniProgramType
miniProgramType
:
miniProgramType
MessageExt
:
call
.
arguments
[
fluwxKeyMessageExt
]
MessageExt
:
call
.
arguments
[
fluwxKeyMessageExt
]
MessageAction
:
call
.
arguments
[
fluwxKeyMessageAction
]
MessageAction
:
call
.
arguments
[
fluwxKeyMessageAction
]
TagName
:
call
.
arguments
[
fluwxKeyMediaTagName
]
TagName
:
call
.
arguments
[
fluwxKeyMediaTagName
]
InScene
:
[
self
intToWeChatScene
:
scene
]
InScene
:
[
self
intToWeChatScene
:
scene
]
MsgSignature
:
call
.
arguments
[
fluwxKeyMsgSignature
]
MsgSignature
:
call
.
arguments
[
fluwxKeyMsgSignature
]
HdImageData
:
hdImageData
HdImageData
:
hdImageData
ThumbData
:
thumbData
ThumbData
:
thumbData
ThumbDataHash
:
call
.
arguments
[
fluwxKeyThumbDataHash
]
ThumbDataHash
:
call
.
arguments
[
fluwxKeyThumbDataHash
]
completion
:^
(
BOOL
done
)
{
completion
:^
(
BOOL
done
)
{
result
(
@
(
done
));
result
(
@
(
done
));
}
}];
];
});
});
});
});
}
}
-
(
UIImage
*
)
getCommonThumbnail
:
(
FlutterMethodCall
*
)
call
{
NSDictionary
*
thumbnail
=
call
.
arguments
[
fluwxKeyThumbnail
];
if
(
thumbnail
==
nil
||
thumbnail
==
(
id
)
[
NSNull
null
])
{
return
nil
;
}
NSString
*
suffix
=
thumbnail
[
@"suffix"
];
NSNumber
*
compress
=
call
.
arguments
[
fluwxKeyCompressThumbnail
];
NSData
*
thumbnailData
=
[
self
getNsDataFromWeChatFile
:
thumbnail
];
UIImage
*
thumbnailImage
=
[
self
getThumbnailFromNSData
:
thumbnailData
size
:
defaultThumbnailSize
isPNG
:
[
self
isPNG
:
suffix
]
compress
:
[
compress
boolValue
]];
return
thumbnailImage
;
}
//enum ImageSchema {
// NETWORK,
// ASSET,
// FILE,
// BINARY,
//}
-
(
NSData
*
)
getNsDataFromWeChatFile
:
(
NSDictionary
*
)
weChatFile
{
-
(
NSData
*
)
getNsDataFromWeChatFile
:
(
NSDictionary
*
)
weChatFile
{
NSNumber
*
schema
=
weChatFile
[
@"schema"
];
NSNumber
*
schema
=
weChatFile
[
@"schema"
];
if
([
schema
isEqualToNumber
:
@0
])
{
if
([
schema
isEqualToNumber
:
@0
])
{
NSString
*
source
=
weChatFile
[
keySource
];
NSString
*
source
=
weChatFile
[
keySource
];
NSURL
*
imageURL
=
[
NSURL
URLWithString
:
source
];
NSURL
*
imageURL
=
[
NSURL
URLWithString
:
source
];
...
@@ -829,10 +763,11 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -829,10 +763,11 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
-
(
UIImage
*
)
getThumbnailFromNSData
:
(
NSData
*
)
data
size
:
(
NSUInteger
)
size
isPNG
:
(
BOOL
)
isPNG
compress
:
(
BOOL
)
compress
{
-
(
UIImage
*
)
getThumbnailFromNSData
:
(
NSData
*
)
data
size
:
(
NSUInteger
)
size
isPNG
:
(
BOOL
)
isPNG
compress
:
(
BOOL
)
compress
{
UIImage
*
uiImage
=
[
UIImage
imageWithData
:
data
];
UIImage
*
uiImage
=
[
UIImage
imageWithData
:
data
];
if
(
compress
)
if
(
compress
)
{
return
[
ThumbnailHelper
compressImage
:
uiImage
toByte
:
size
isPNG
:
isPNG
];
return
[
ThumbnailHelper
compressImage
:
uiImage
toByte
:
size
isPNG
:
isPNG
];
else
}
else
{
return
uiImage
;
return
uiImage
;
}
}
}
-
(
NSData
*
)
getThumbnailDataFromNSData
:
(
NSData
*
)
data
size
:
(
NSUInteger
)
size
compress
:
(
BOOL
)
compress
{
-
(
NSData
*
)
getThumbnailDataFromNSData
:
(
NSData
*
)
data
size
:
(
NSUInteger
)
size
compress
:
(
BOOL
)
compress
{
...
@@ -851,7 +786,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -851,7 +786,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
}
else
{
}
else
{
key
=
[
_fluwxRegistrar
lookupKeyForAsset
:
array
[
0
]
fromPackage
:
array
[
1
]];
key
=
[
_fluwxRegistrar
lookupKeyForAsset
:
array
[
0
]
fromPackage
:
array
[
1
]];
}
}
return
[[
NSBundle
mainBundle
]
pathForResource
:
key
ofType
:
nil
];
return
[[
NSBundle
mainBundle
]
pathForResource
:
key
ofType
:
nil
];
}
}
...
@@ -860,7 +795,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -860,7 +795,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
NSString
*
packageName
=
@""
;
NSString
*
packageName
=
@""
;
NSString
*
pathWithoutSchema
=
originPath
;
NSString
*
pathWithoutSchema
=
originPath
;
NSInteger
indexOfPackage
=
[
pathWithoutSchema
lastIndexOfString
:
@"?package="
];
NSInteger
indexOfPackage
=
[
pathWithoutSchema
lastIndexOfString
:
@"?package="
];
if
(
indexOfPackage
!=
JavaNotFound
)
{
if
(
indexOfPackage
!=
JavaNotFound
)
{
path
=
[
pathWithoutSchema
substringFromIndex
:
0
toIndex
:
indexOfPackage
];
path
=
[
pathWithoutSchema
substringFromIndex
:
0
toIndex
:
indexOfPackage
];
NSInteger
begin
=
indexOfPackage
+
[
fluwxKeyPackage
length
];
NSInteger
begin
=
indexOfPackage
+
[
fluwxKeyPackage
length
];
...
@@ -868,7 +803,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -868,7 +803,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
}
else
{
}
else
{
path
=
pathWithoutSchema
;
path
=
pathWithoutSchema
;
}
}
return
@[
path
,
packageName
];
return
@[
path
,
packageName
];
}
}
...
@@ -877,7 +812,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -877,7 +812,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
}
}
-
(
enum
WXScene
)
intToWeChatScene
:
(
NSNumber
*
)
value
{
-
(
enum
WXScene
)
intToWeChatScene
:
(
NSNumber
*
)
value
{
// enum WeChatScene { SESSION, TIMELINE, FAVORITE }
// enum WeChatScene { SESSION, TIMELINE, FAVORITE }
if
([
value
isEqual
:
@0
])
{
if
([
value
isEqual
:
@0
])
{
return
WXSceneSession
;
return
WXSceneSession
;
}
else
if
([
value
isEqual
:
@1
])
{
}
else
if
([
value
isEqual
:
@1
])
{
...
@@ -889,254 +824,214 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -889,254 +824,214 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
}
}
}
}
-
(
void
)
managerDidRecvLaunchFromWXReq
:
(
LaunchFromWXReq
*
)
request
{
-
(
void
)
managerDidRecvLaunchFromWXReq
:
(
LaunchFromWXReq
*
)
request
{
[
FluwxDelegate
defaultManager
].
extMsg
=
request
.
message
.
messageExt
;
[
FluwxDelegate
defaultManager
].
extMsg
=
request
.
message
.
messageExt
;
// LaunchFromWXReq *launchFromWXReq = (LaunchFromWXReq *)request;
// LaunchFromWXReq *launchFromWXReq = (LaunchFromWXReq *)request;
//
//
// if (_isRunning) {
// if (_isRunning) {
// [FluwxDelegate defaultManager].extMsg = request.message.messageExt;
// [FluwxDelegate defaultManager].extMsg = request.message.messageExt;
// } else {
// } else {
// __weak typeof(self) weakSelf = self;
// __weak typeof(self) weakSelf = self;
// _initialWXReqRunnable = ^() {
// _initialWXReqRunnable = ^() {
// __strong typeof(weakSelf) strongSelf = weakSelf;
// __strong typeof(weakSelf) strongSelf = weakSelf;
// [FluwxDelegate defaultManager].extMsg = request.message.messageExt
// [FluwxDelegate defaultManager].extMsg = request.message.messageExt
// };
// };
// }
// }
}
}
-
(
void
)
onResp
:
(
BaseResp
*
)
resp
{
-
(
void
)
onResp
:
(
BaseResp
*
)
resp
{
if
([
resp
isKindOfClass
:[
SendMessageToWXResp
class
]])
{
if
([
resp
isKindOfClass
:[
SendMessageToWXResp
class
]])
{
SendMessageToWXResp
*
messageResp
=
(
SendMessageToWXResp
*
)
resp
;
SendMessageToWXResp
*
messageResp
=
(
SendMessageToWXResp
*
)
resp
;
NSDictionary
*
result
=
@{
NSDictionary
*
result
=
@{
description:
messageResp
.
description
==
nil
?
@""
:
messageResp
.
description
,
description:
messageResp
.
description
==
nil
?
@""
:
messageResp
.
description
,
errStr:
messageResp
.
errStr
==
nil
?
@""
:
messageResp
.
errStr
,
errStr:
messageResp
.
errStr
==
nil
?
@""
:
messageResp
.
errStr
,
errCode:
@
(
messageResp
.
errCode
),
errCode:
@
(
messageResp
.
errCode
),
fluwxType:
@
(
messageResp
.
type
),
fluwxType:
@
(
messageResp
.
type
),
country:
messageResp
.
country
==
nil
?
@""
:
messageResp
.
country
,
country:
messageResp
.
country
==
nil
?
@""
:
messageResp
.
country
,
lang:
messageResp
.
lang
==
nil
?
@""
:
messageResp
.
lang
};
lang:
messageResp
.
lang
==
nil
?
@""
:
messageResp
.
lang
};
if
(
_channel
!=
nil
)
{
if
(
_channel
!=
nil
)
{
[
_channel
invokeMethod
:
@"onShareResponse"
arguments
:
result
];
[
_channel
invokeMethod
:
@"onShareResponse"
arguments
:
result
];
}
}
}
else
if
([
resp
isKindOfClass
:[
SendAuthResp
class
]])
{
}
else
if
([
resp
isKindOfClass
:[
SendAuthResp
class
]])
{
SendAuthResp
*
authResp
=
(
SendAuthResp
*
)
resp
;
SendAuthResp
*
authResp
=
(
SendAuthResp
*
)
resp
;
NSDictionary
*
result
=
@{
NSDictionary
*
result
=
@{
description:
authResp
.
description
==
nil
?
@""
:
authResp
.
description
,
description:
authResp
.
description
==
nil
?
@""
:
authResp
.
description
,
errStr:
authResp
.
errStr
==
nil
?
@""
:
authResp
.
errStr
,
errStr:
authResp
.
errStr
==
nil
?
@""
:
authResp
.
errStr
,
errCode:
@
(
authResp
.
errCode
),
errCode:
@
(
authResp
.
errCode
),
fluwxType:
@
(
authResp
.
type
),
fluwxType:
@
(
authResp
.
type
),
country:
authResp
.
country
==
nil
?
@""
:
authResp
.
country
,
country:
authResp
.
country
==
nil
?
@""
:
authResp
.
country
,
lang:
authResp
.
lang
==
nil
?
@""
:
authResp
.
lang
,
lang:
authResp
.
lang
==
nil
?
@""
:
authResp
.
lang
,
@"code"
:
[
FluwxStringUtil
nilToEmpty
:
authResp
.
code
],
@"code"
:
[
FluwxStringUtil
nilToEmpty
:
authResp
.
code
],
@"state"
:
[
FluwxStringUtil
nilToEmpty
:
authResp
.
state
]
@"state"
:
[
FluwxStringUtil
nilToEmpty
:
authResp
.
state
]
};
};
if
(
_channel
!=
nil
)
{
if
(
_channel
!=
nil
)
{
[
_channel
invokeMethod
:
@"onAuthResponse"
arguments
:
result
];
[
_channel
invokeMethod
:
@"onAuthResponse"
arguments
:
result
];
}
}
}
else
if
([
resp
isKindOfClass
:[
AddCardToWXCardPackageResp
class
]])
{
}
else
if
([
resp
isKindOfClass
:[
AddCardToWXCardPackageResp
class
]])
{
// pass
}
else
if
([
resp
isKindOfClass
:[
WXChooseCardResp
class
]])
{
}
else
if
([
resp
isKindOfClass
:[
WXChooseCardResp
class
]])
{
// pass
}
else
if
([
resp
isKindOfClass
:[
WXChooseInvoiceResp
class
]])
{
}
else
if
([
resp
isKindOfClass
:[
WXChooseInvoiceResp
class
]])
{
//TODO 处理发票返回,并回调Dart
//TODO 处理发票返回,并回调Dart
WXChooseInvoiceResp
*
chooseInvoiceResp
=
(
WXChooseInvoiceResp
*
)
resp
;
WXChooseInvoiceResp
*
chooseInvoiceResp
=
(
WXChooseInvoiceResp
*
)
resp
;
NSArray
*
array
=
chooseInvoiceResp
.
cardAry
;
NSArray
*
array
=
chooseInvoiceResp
.
cardAry
;
NSMutableArray
*
mutableArray
=
[
NSMutableArray
arrayWithCapacity
:
array
.
count
];
NSMutableArray
*
mutableArray
=
[
NSMutableArray
arrayWithCapacity
:
array
.
count
];
for
(
int
i
=
0
;
i
<
array
.
count
;
i
++
)
{
for
(
int
i
=
0
;
i
<
array
.
count
;
i
++
)
{
WXInvoiceItem
*
item
=
array
[
i
];
WXInvoiceItem
*
item
=
array
[
i
];
NSDictionary
*
dict
=
@{
@"app_id"
:
item
.
appID
,
@"encrypt_code"
:
item
.
encryptCode
,
@"card_id"
:
item
.
cardId
};
NSDictionary
*
dict
=
@{
@"app_id"
:
item
.
appID
,
@"encrypt_code"
:
item
.
encryptCode
,
@"card_id"
:
item
.
cardId
};
[
mutableArray
addObject
:
dict
];
[
mutableArray
addObject
:
dict
];
}
}
NSError
*
error
=
nil
;
NSError
*
error
=
nil
;
NSData
*
jsonData
=
[
NSJSONSerialization
dataWithJSONObject
:
mutableArray
NSData
*
jsonData
=
[
NSJSONSerialization
dataWithJSONObject
:
mutableArray
options
:
NSJSONWritingPrettyPrinted
error
:
&
error
];
options
:
NSJSONWritingPrettyPrinted
error
:
&
error
];
NSString
*
cardItemList
=
@""
;
NSString
*
cardItemList
=
@""
;
if
([
jsonData
length
]
&&
error
==
nil
)
{
if
([
jsonData
length
]
&&
error
==
nil
)
{
cardItemList
=
[[
NSString
alloc
]
initWithData
:
jsonData
encoding
:
NSUTF8StringEncoding
];
cardItemList
=
[[
NSString
alloc
]
initWithData
:
jsonData
encoding
:
NSUTF8StringEncoding
];
}
}
NSDictionary
*
result
=
@{
NSDictionary
*
result
=
@{
description:
chooseInvoiceResp
.
description
==
nil
?
@""
:
chooseInvoiceResp
.
description
,
description:
chooseInvoiceResp
.
description
==
nil
?
@""
:
chooseInvoiceResp
.
description
,
errStr:
chooseInvoiceResp
.
errStr
==
nil
?
@""
:
chooseInvoiceResp
.
errStr
,
errStr:
chooseInvoiceResp
.
errStr
==
nil
?
@""
:
chooseInvoiceResp
.
errStr
,
errCode:
@
(
chooseInvoiceResp
.
errCode
),
errCode:
@
(
chooseInvoiceResp
.
errCode
),
fluwxType:
@
(
chooseInvoiceResp
.
type
),
fluwxType:
@
(
chooseInvoiceResp
.
type
),
@"cardItemList"
:
cardItemList
@"cardItemList"
:
cardItemList
};
};
if
(
_channel
!=
nil
){
if
(
_channel
!=
nil
)
{
[
_channel
invokeMethod
:
@"onOpenWechatInvoiceResponse"
arguments
:
result
];
[
_channel
invokeMethod
:
@"onOpenWechatInvoiceResponse"
arguments
:
result
];
}
}
}
else
if
([
resp
isKindOfClass
:[
WXSubscribeMsgResp
class
]])
{
}
else
if
([
resp
isKindOfClass
:[
WXSubscribeMsgResp
class
]])
{
WXSubscribeMsgResp
*
subscribeMsgResp
=
(
WXSubscribeMsgResp
*
)
resp
;
WXSubscribeMsgResp
*
subscribeMsgResp
=
(
WXSubscribeMsgResp
*
)
resp
;
NSMutableDictionary
*
result
=
[
NSMutableDictionary
dictionary
];
NSMutableDictionary
*
result
=
[
NSMutableDictionary
dictionary
];
NSString
*
openid
=
subscribeMsgResp
.
openId
;
NSString
*
openid
=
subscribeMsgResp
.
openId
;
if
(
openid
!=
nil
&&
openid
!=
NULL
&&
!
[
openid
isKindOfClass
:[
NSNull
class
]])
{
if
(
openid
!=
nil
&&
openid
!=
NULL
&&
!
[
openid
isKindOfClass
:[
NSNull
class
]])
{
result
[
@"openid"
]
=
openid
;
result
[
@"openid"
]
=
openid
;
}
}
NSString
*
templateId
=
subscribeMsgResp
.
templateId
;
NSString
*
templateId
=
subscribeMsgResp
.
templateId
;
if
(
templateId
!=
nil
&&
templateId
!=
NULL
&&
!
[
templateId
isKindOfClass
:[
NSNull
class
]])
{
if
(
templateId
!=
nil
&&
templateId
!=
NULL
&&
!
[
templateId
isKindOfClass
:[
NSNull
class
]])
{
result
[
@"templateId"
]
=
templateId
;
result
[
@"templateId"
]
=
templateId
;
}
}
NSString
*
action
=
subscribeMsgResp
.
action
;
NSString
*
action
=
subscribeMsgResp
.
action
;
if
(
action
!=
nil
&&
action
!=
NULL
&&
!
[
action
isKindOfClass
:[
NSNull
class
]])
{
if
(
action
!=
nil
&&
action
!=
NULL
&&
!
[
action
isKindOfClass
:[
NSNull
class
]])
{
result
[
@"action"
]
=
action
;
result
[
@"action"
]
=
action
;
}
}
NSString
*
reserved
=
subscribeMsgResp
.
action
;
NSString
*
reserved
=
subscribeMsgResp
.
action
;
if
(
reserved
!=
nil
&&
reserved
!=
NULL
&&
!
[
reserved
isKindOfClass
:[
NSNull
class
]])
{
if
(
reserved
!=
nil
&&
reserved
!=
NULL
&&
!
[
reserved
isKindOfClass
:[
NSNull
class
]])
{
result
[
@"reserved"
]
=
reserved
;
result
[
@"reserved"
]
=
reserved
;
}
}
UInt32
scene
=
subscribeMsgResp
.
scene
;
UInt32
scene
=
subscribeMsgResp
.
scene
;
result
[
@"scene"
]
=
@
(
scene
);
result
[
@"scene"
]
=
@
(
scene
);
if
(
_channel
!=
nil
)
{
if
(
_channel
!=
nil
)
{
[
_channel
invokeMethod
:
@"onSubscribeMsgResp"
arguments
:
result
];
[
_channel
invokeMethod
:
@"onSubscribeMsgResp"
arguments
:
result
];
}
}
}
else
if
([
resp
isKindOfClass
:[
WXLaunchMiniProgramResp
class
]])
{
}
else
if
([
resp
isKindOfClass
:[
WXLaunchMiniProgramResp
class
]])
{
WXLaunchMiniProgramResp
*
miniProgramResp
=
(
WXLaunchMiniProgramResp
*
)
resp
;
WXLaunchMiniProgramResp
*
miniProgramResp
=
(
WXLaunchMiniProgramResp
*
)
resp
;
NSDictionary
*
commonResult
=
@{
NSDictionary
*
commonResult
=
@{
description:
miniProgramResp
.
description
==
nil
?
@""
:
miniProgramResp
.
description
,
description:
miniProgramResp
.
description
==
nil
?
@""
:
miniProgramResp
.
description
,
errStr:
miniProgramResp
.
errStr
==
nil
?
@""
:
miniProgramResp
.
errStr
,
errStr:
miniProgramResp
.
errStr
==
nil
?
@""
:
miniProgramResp
.
errStr
,
errCode:
@
(
miniProgramResp
.
errCode
),
errCode:
@
(
miniProgramResp
.
errCode
),
fluwxType:
@
(
miniProgramResp
.
type
),
fluwxType:
@
(
miniProgramResp
.
type
),
};
};
NSMutableDictionary
*
result
=
[
NSMutableDictionary
dictionaryWithDictionary
:
commonResult
];
NSMutableDictionary
*
result
=
[
NSMutableDictionary
dictionaryWithDictionary
:
commonResult
];
if
(
miniProgramResp
.
extMsg
!=
nil
)
{
if
(
miniProgramResp
.
extMsg
!=
nil
)
{
result
[
@"extMsg"
]
=
miniProgramResp
.
extMsg
;
result
[
@"extMsg"
]
=
miniProgramResp
.
extMsg
;
}
}
if
(
_channel
!=
nil
)
{
// @"extMsg":miniProgramResp.extMsg == nil?@"":miniProgramResp.extMsg
if
(
_channel
!=
nil
){
[
_channel
invokeMethod
:
@"onLaunchMiniProgramResponse"
arguments
:
result
];
[
_channel
invokeMethod
:
@"onLaunchMiniProgramResponse"
arguments
:
result
];
}
}
}
else
if
([
resp
isKindOfClass
:[
WXInvoiceAuthInsertResp
class
]])
{
}
else
if
([
resp
isKindOfClass
:[
WXInvoiceAuthInsertResp
class
]])
{
// pass
}
else
if
([
resp
isKindOfClass
:[
WXOpenBusinessWebViewResp
class
]])
{
}
else
if
([
resp
isKindOfClass
:[
WXOpenBusinessWebViewResp
class
]])
{
WXOpenBusinessWebViewResp
*
businessResp
=
(
WXOpenBusinessWebViewResp
*
)
resp
;
WXOpenBusinessWebViewResp
*
businessResp
=
(
WXOpenBusinessWebViewResp
*
)
resp
;
NSDictionary
*
result
=
@{
NSDictionary
*
result
=
@{
description:
[
FluwxStringUtil
nilToEmpty
:
businessResp
.
description
],
description:
[
FluwxStringUtil
nilToEmpty
:
businessResp
.
description
],
errStr:
[
FluwxStringUtil
nilToEmpty
:
resp
.
errStr
],
errStr:
[
FluwxStringUtil
nilToEmpty
:
resp
.
errStr
],
errCode:
@
(
businessResp
.
errCode
),
errCode:
@
(
businessResp
.
errCode
),
fluwxType:
@
(
businessResp
.
type
),
fluwxType:
@
(
businessResp
.
type
),
@"resultInfo"
:
[
FluwxStringUtil
nilToEmpty
:
businessResp
.
result
],
@"resultInfo"
:
[
FluwxStringUtil
nilToEmpty
:
businessResp
.
result
],
@"businessType"
:
@
(
businessResp
.
businessType
),
@"businessType"
:
@
(
businessResp
.
businessType
),
};
};
if
(
_channel
!=
nil
)
{
if
(
_channel
!=
nil
)
{
[
_channel
invokeMethod
:
@"onWXOpenBusinessWebviewResponse"
arguments
:
result
];
[
_channel
invokeMethod
:
@"onWXOpenBusinessWebviewResponse"
arguments
:
result
];
}
}
}
else
if
([
resp
isKindOfClass
:[
WXOpenCustomerServiceResp
class
]])
{
}
else
if
([
resp
isKindOfClass
:[
WXOpenCustomerServiceResp
class
]])
{
WXOpenCustomerServiceResp
*
customerResp
=
(
WXOpenCustomerServiceResp
*
)
resp
;
WXOpenCustomerServiceResp
*
customerResp
=
(
WXOpenCustomerServiceResp
*
)
resp
;
NSDictionary
*
result
=
@{
NSDictionary
*
result
=
@{
description:
[
FluwxStringUtil
nilToEmpty
:
customerResp
.
description
],
description:
[
FluwxStringUtil
nilToEmpty
:
customerResp
.
description
],
errStr:
[
FluwxStringUtil
nilToEmpty
:
resp
.
errStr
],
errStr:
[
FluwxStringUtil
nilToEmpty
:
resp
.
errStr
],
errCode:
@
(
customerResp
.
errCode
),
errCode:
@
(
customerResp
.
errCode
),
fluwxType:
@
(
customerResp
.
type
),
fluwxType:
@
(
customerResp
.
type
),
@"extMsg"
:
[
FluwxStringUtil
nilToEmpty
:
customerResp
.
extMsg
]
@"extMsg"
:
[
FluwxStringUtil
nilToEmpty
:
customerResp
.
extMsg
]
};
};
if
(
_channel
!=
nil
)
{
if
(
_channel
!=
nil
)
{
[
_channel
invokeMethod
:
@"onWXOpenBusinessWebviewResponse"
arguments
:
result
];
[
_channel
invokeMethod
:
@"onWXOpenBusinessWebviewResponse"
arguments
:
result
];
}
}
// 相关错误信息
// 相关错误信息
}
else
if
([
resp
isKindOfClass
:[
WXOpenBusinessViewResp
class
]])
{
}
else
if
([
resp
isKindOfClass
:[
WXOpenBusinessViewResp
class
]])
{
WXOpenBusinessViewResp
*
openBusinessViewResp
=
(
WXOpenBusinessViewResp
*
)
resp
;
WXOpenBusinessViewResp
*
openBusinessViewResp
=
(
WXOpenBusinessViewResp
*
)
resp
;
NSDictionary
*
result
=
@{
NSDictionary
*
result
=
@{
description:
[
FluwxStringUtil
nilToEmpty
:
openBusinessViewResp
.
description
],
description:
[
FluwxStringUtil
nilToEmpty
:
openBusinessViewResp
.
description
],
errStr:
[
FluwxStringUtil
nilToEmpty
:
resp
.
errStr
],
errStr:
[
FluwxStringUtil
nilToEmpty
:
resp
.
errStr
],
errCode:
@
(
openBusinessViewResp
.
errCode
),
errCode:
@
(
openBusinessViewResp
.
errCode
),
@"businessType"
:
openBusinessViewResp
.
businessType
,
@"businessType"
:
openBusinessViewResp
.
businessType
,
fluwxType:
@
(
openBusinessViewResp
.
type
),
fluwxType:
@
(
openBusinessViewResp
.
type
),
@"extMsg"
:
[
FluwxStringUtil
nilToEmpty
:
openBusinessViewResp
.
extMsg
]
@"extMsg"
:
[
FluwxStringUtil
nilToEmpty
:
openBusinessViewResp
.
extMsg
]
};
};
if
(
_channel
!=
nil
)
{
if
(
_channel
!=
nil
)
{
[
_channel
invokeMethod
:
@"onOpenBusinessViewResponse"
arguments
:
result
];
[
_channel
invokeMethod
:
@"onOpenBusinessViewResponse"
arguments
:
result
];
}
}
// 相关错误信息
// 相关错误信息
}
}
#ifndef NO_PAY
#ifndef NO_PAY
else
if
([
resp
isKindOfClass
:[
WXPayInsuranceResp
class
]])
{
else
if
([
resp
isKindOfClass
:[
WXPayInsuranceResp
class
]])
{
// pass
}
else
if
([
resp
isKindOfClass
:[
PayResp
class
]])
{
}
else
if
([
resp
isKindOfClass
:[
PayResp
class
]])
{
PayResp
*
payResp
=
(
PayResp
*
)
resp
;
PayResp
*
payResp
=
(
PayResp
*
)
resp
;
NSDictionary
*
result
=
@{
NSDictionary
*
result
=
@{
description:
[
FluwxStringUtil
nilToEmpty
:
payResp
.
description
],
description:
[
FluwxStringUtil
nilToEmpty
:
payResp
.
description
],
errStr:
[
FluwxStringUtil
nilToEmpty
:
resp
.
errStr
],
errStr:
[
FluwxStringUtil
nilToEmpty
:
resp
.
errStr
],
errCode:
@
(
payResp
.
errCode
),
errCode:
@
(
payResp
.
errCode
),
fluwxType:
@
(
payResp
.
type
),
fluwxType:
@
(
payResp
.
type
),
@"extData"
:
[
FluwxStringUtil
nilToEmpty
:[
FluwxDelegate
defaultManager
].
extData
],
@"extData"
:
[
FluwxStringUtil
nilToEmpty
:[
FluwxDelegate
defaultManager
].
extData
],
@"returnKey"
:
[
FluwxStringUtil
nilToEmpty
:
payResp
.
returnKey
],
@"returnKey"
:
[
FluwxStringUtil
nilToEmpty
:
payResp
.
returnKey
],
};
};
[
FluwxDelegate
defaultManager
].
extData
=
nil
;
[
FluwxDelegate
defaultManager
].
extData
=
nil
;
if
(
_channel
!=
nil
)
{
if
(
_channel
!=
nil
)
{
[
_channel
invokeMethod
:
@"onPayResponse"
arguments
:
result
];
[
_channel
invokeMethod
:
@"onPayResponse"
arguments
:
result
];
}
}
}
else
if
([
resp
isKindOfClass
:[
WXNontaxPayResp
class
]])
{
}
else
if
([
resp
isKindOfClass
:[
WXNontaxPayResp
class
]])
{
// pass
}
}
#endif
#endif
}
}
-
(
void
)
onReq
:
(
BaseReq
*
)
req
{
-
(
void
)
onReq
:
(
BaseReq
*
)
req
{
if
([
req
isKindOfClass
:[
GetMessageFromWXReq
class
]])
{
if
([
req
isKindOfClass
:[
GetMessageFromWXReq
class
]])
{
// pass
}
else
if
([
req
isKindOfClass
:[
ShowMessageFromWXReq
class
]])
{
}
else
if
([
req
isKindOfClass
:[
ShowMessageFromWXReq
class
]])
{
// ShowMessageFromWXReq -- android spec
// ShowMessageFromWXReq -- android spec
ShowMessageFromWXReq
*
showMessageFromWXReq
=
(
ShowMessageFromWXReq
*
)
req
;
ShowMessageFromWXReq
*
showMessageFromWXReq
=
(
ShowMessageFromWXReq
*
)
req
;
WXMediaMessage
*
wmm
=
showMessageFromWXReq
.
message
;
WXMediaMessage
*
wmm
=
showMessageFromWXReq
.
message
;
NSMutableDictionary
*
result
=
[
NSMutableDictionary
dictionary
];
NSMutableDictionary
*
result
=
[
NSMutableDictionary
dictionary
];
[
result
setValue
:
wmm
.
messageAction
forKey
:
@"messageAction"
];
[
result
setValue
:
wmm
.
messageAction
forKey
:
@"messageAction"
];
[
result
setValue
:
wmm
.
messageExt
forKey
:
@"extMsg"
];
[
result
setValue
:
wmm
.
messageExt
forKey
:
@"extMsg"
];
[
result
setValue
:
showMessageFromWXReq
.
lang
forKey
:
@"lang"
];
[
result
setValue
:
showMessageFromWXReq
.
lang
forKey
:
@"lang"
];
[
result
setValue
:
showMessageFromWXReq
.
country
forKey
:
@"country"
];
[
result
setValue
:
showMessageFromWXReq
.
country
forKey
:
@"country"
];
// Cache extMsg for later use (by calling 'getExtMsg')
// Cache extMsg for later use (by calling 'getExtMsg')
[
FluwxDelegate
defaultManager
].
extMsg
=
wmm
.
messageExt
;
[
FluwxDelegate
defaultManager
].
extMsg
=
wmm
.
messageExt
;
if
(
_isRunning
)
{
if
(
_isRunning
)
{
[
_channel
invokeMethod
:
@"onWXShowMessageFromWX"
arguments
:
result
];
[
_channel
invokeMethod
:
@"onWXShowMessageFromWX"
arguments
:
result
];
}
else
{
}
else
{
...
@@ -1146,21 +1041,20 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1146,21 +1041,20 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
[
strongSelf
->
_channel
invokeMethod
:
@"onWXShowMessageFromWX"
arguments
:
result
];
[
strongSelf
->
_channel
invokeMethod
:
@"onWXShowMessageFromWX"
arguments
:
result
];
};
};
}
}
}
else
if
([
req
isKindOfClass
:[
LaunchFromWXReq
class
]])
{
}
else
if
([
req
isKindOfClass
:[
LaunchFromWXReq
class
]])
{
// ShowMessageFromWXReq -- ios spec
// ShowMessageFromWXReq -- ios spec
LaunchFromWXReq
*
launchFromWXReq
=
(
LaunchFromWXReq
*
)
req
;
LaunchFromWXReq
*
launchFromWXReq
=
(
LaunchFromWXReq
*
)
req
;
WXMediaMessage
*
wmm
=
launchFromWXReq
.
message
;
WXMediaMessage
*
wmm
=
launchFromWXReq
.
message
;
NSMutableDictionary
*
result
=
[
NSMutableDictionary
dictionary
];
NSMutableDictionary
*
result
=
[
NSMutableDictionary
dictionary
];
[
result
setValue
:
wmm
.
messageAction
forKey
:
@"messageAction"
];
[
result
setValue
:
wmm
.
messageAction
forKey
:
@"messageAction"
];
[
result
setValue
:
wmm
.
messageExt
forKey
:
@"extMsg"
];
[
result
setValue
:
wmm
.
messageExt
forKey
:
@"extMsg"
];
[
result
setValue
:
launchFromWXReq
.
lang
forKey
:
@"lang"
];
[
result
setValue
:
launchFromWXReq
.
lang
forKey
:
@"lang"
];
[
result
setValue
:
launchFromWXReq
.
country
forKey
:
@"country"
];
[
result
setValue
:
launchFromWXReq
.
country
forKey
:
@"country"
];
// Cache extMsg for later use (by calling 'getExtMsg')
// Cache extMsg for later use (by calling 'getExtMsg')
[
FluwxDelegate
defaultManager
].
extMsg
=
wmm
.
messageExt
;
[
FluwxDelegate
defaultManager
].
extMsg
=
wmm
.
messageExt
;
if
(
_isRunning
)
{
if
(
_isRunning
)
{
[
_channel
invokeMethod
:
@"onWXLaunchFromWX"
arguments
:
result
];
[
_channel
invokeMethod
:
@"onWXLaunchFromWX"
arguments
:
result
];
}
else
{
}
else
{
...
@@ -1171,19 +1065,16 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1171,19 +1065,16 @@ 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
;
req
.
text
=
text
;
req
.
text
=
text
;
[
WXApi
sendReq
:
req
[
WXApi
sendReq
:
req
completion
:
completion
];
completion
:
completion
];
}
}
-
(
void
)
sendImageData
:
(
NSData
*
)
imageData
-
(
void
)
sendImageData
:
(
NSData
*
)
imageData
...
@@ -1201,24 +1092,24 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1201,24 +1092,24 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
WXImageObject
*
ext
=
[
WXImageObject
object
];
WXImageObject
*
ext
=
[
WXImageObject
object
];
ext
.
imageData
=
imageData
;
ext
.
imageData
=
imageData
;
ext
.
imgDataHash
=
(
imgDataHash
==
(
id
)
[
NSNull
null
])
?
nil
:
imgDataHash
;
ext
.
imgDataHash
=
(
imgDataHash
==
(
id
)
[
NSNull
null
])
?
nil
:
imgDataHash
;
WXMediaMessage
*
message
=
[
self
messageWithTitle
:(
title
==
(
id
)
[
NSNull
null
])
?
nil
:
title
WXMediaMessage
*
message
=
[
self
messageWithTitle
:(
title
==
(
id
)
[
NSNull
null
])
?
nil
:
title
Description
:(
description
==
(
id
)
[
NSNull
null
])
?
nil
:
description
Description
:(
description
==
(
id
)
[
NSNull
null
])
?
nil
:
description
Object
:
ext
Object
:
ext
MessageExt
:
(
messageExt
==
(
id
)
[
NSNull
null
])
?
nil
:
messageExt
MessageExt
:
(
messageExt
==
(
id
)
[
NSNull
null
])
?
nil
:
messageExt
MessageAction
:
(
action
==
(
id
)
[
NSNull
null
])
?
nil
:
action
MessageAction
:
(
action
==
(
id
)
[
NSNull
null
])
?
nil
:
action
MediaTag
:
(
tagName
==
(
id
)
[
NSNull
null
])
?
nil
:
tagName
MediaTag
:
(
tagName
==
(
id
)
[
NSNull
null
])
?
nil
:
tagName
MsgSignature
:
(
msgSignature
==
(
id
)
[
NSNull
null
])
?
nil
:
msgSignature
MsgSignature
:
(
msgSignature
==
(
id
)
[
NSNull
null
])
?
nil
:
msgSignature
ThumbData
:
thumbData
ThumbData
:
thumbData
ThumbDataHash
:
(
thumbDataHash
==
(
id
)
[
NSNull
null
])
?
nil
:
thumbDataHash
ThumbDataHash
:
(
thumbDataHash
==
(
id
)
[
NSNull
null
])
?
nil
:
thumbDataHash
];;
];;
SendMessageToWXReq
*
req
=
[
self
requestWithText
:
nil
SendMessageToWXReq
*
req
=
[
self
requestWithText
:
nil
OrMediaMessage
:
message
OrMediaMessage
:
message
bText
:
NO
bText
:
NO
InScene
:
scene
];
InScene
:
scene
];
[
WXApi
sendReq
:
req
completion
:
completion
];
[
WXApi
sendReq
:
req
completion
:
completion
];
}
}
...
@@ -1226,7 +1117,6 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1226,7 +1117,6 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
TagName
:
(
NSString
*
)
tagName
TagName
:
(
NSString
*
)
tagName
Title
:
(
NSString
*
)
title
Title
:
(
NSString
*
)
title
Description
:
(
NSString
*
)
description
Description
:
(
NSString
*
)
description
ThumbImage
:
(
UIImage
*
)
thumbImage
MessageExt
:
(
NSString
*
)
messageExt
MessageExt
:
(
NSString
*
)
messageExt
MessageAction
:
(
NSString
*
)
messageAction
MessageAction
:
(
NSString
*
)
messageAction
InScene
:
(
enum
WXScene
)
scene
InScene
:
(
enum
WXScene
)
scene
...
@@ -1236,22 +1126,22 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1236,22 +1126,22 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
completion
:
(
void
(
^
__nullable
)(
BOOL
success
))
completion
{
completion
:
(
void
(
^
__nullable
)(
BOOL
success
))
completion
{
WXWebpageObject
*
ext
=
[
WXWebpageObject
object
];
WXWebpageObject
*
ext
=
[
WXWebpageObject
object
];
ext
.
webpageUrl
=
urlString
;
ext
.
webpageUrl
=
urlString
;
WXMediaMessage
*
message
=
[
self
messageWithTitle
:(
title
==
(
id
)
[
NSNull
null
])
?
nil
:
title
WXMediaMessage
*
message
=
[
self
messageWithTitle
:(
title
==
(
id
)
[
NSNull
null
])
?
nil
:
title
Description
:(
description
==
(
id
)
[
NSNull
null
])
?
nil
:
description
Description
:(
description
==
(
id
)
[
NSNull
null
])
?
nil
:
description
Object
:
ext
Object
:
ext
MessageExt
:
(
messageExt
==
(
id
)
[
NSNull
null
])
?
nil
:
messageExt
MessageExt
:
(
messageExt
==
(
id
)
[
NSNull
null
])
?
nil
:
messageExt
MessageAction
:
(
messageAction
==
(
id
)
[
NSNull
null
])
?
nil
:
messageAction
MessageAction
:
(
messageAction
==
(
id
)
[
NSNull
null
])
?
nil
:
messageAction
MediaTag
:
(
tagName
==
(
id
)
[
NSNull
null
])
?
nil
:
tagName
MediaTag
:
(
tagName
==
(
id
)
[
NSNull
null
])
?
nil
:
tagName
MsgSignature
:
(
msgSignature
==
(
id
)
[
NSNull
null
])
?
nil
:
msgSignature
MsgSignature
:
(
msgSignature
==
(
id
)
[
NSNull
null
])
?
nil
:
msgSignature
ThumbData
:
thumbData
ThumbData
:
thumbData
ThumbDataHash
:
(
thumbDataHash
==
(
id
)
[
NSNull
null
])
?
nil
:
thumbDataHash
ThumbDataHash
:
(
thumbDataHash
==
(
id
)
[
NSNull
null
])
?
nil
:
thumbDataHash
];
];
SendMessageToWXReq
*
req
=
[
self
requestWithText
:
nil
SendMessageToWXReq
*
req
=
[
self
requestWithText
:
nil
OrMediaMessage
:
message
OrMediaMessage
:
message
bText
:
NO
bText
:
NO
InScene
:
scene
];
InScene
:
scene
];
[
WXApi
sendReq
:
req
completion
:
completion
];
[
WXApi
sendReq
:
req
completion
:
completion
];
}
}
...
@@ -1261,7 +1151,6 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1261,7 +1151,6 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
MusicLowBandDataUrl
:
(
NSString
*
)
musicLowBandDataUrl
MusicLowBandDataUrl
:
(
NSString
*
)
musicLowBandDataUrl
Title
:
(
NSString
*
)
title
Title
:
(
NSString
*
)
title
Description
:
(
NSString
*
)
description
Description
:
(
NSString
*
)
description
ThumbImage
:
(
UIImage
*
)
thumbImage
MessageExt
:
(
NSString
*
)
messageExt
MessageExt
:
(
NSString
*
)
messageExt
MessageAction
:
(
NSString
*
)
messageAction
MessageAction
:
(
NSString
*
)
messageAction
TagName
:
(
NSString
*
)
tagName
TagName
:
(
NSString
*
)
tagName
...
@@ -1271,7 +1160,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1271,7 +1160,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
ThumbDataHash
:
(
NSString
*
)
thumbDataHash
ThumbDataHash
:
(
NSString
*
)
thumbDataHash
completion
:
(
void
(
^
__nullable
)(
BOOL
success
))
completion
{
completion
:
(
void
(
^
__nullable
)(
BOOL
success
))
completion
{
WXMusicObject
*
ext
=
[
WXMusicObject
object
];
WXMusicObject
*
ext
=
[
WXMusicObject
object
];
if
([
FluwxStringUtil
isBlank
:
musicURL
])
{
if
([
FluwxStringUtil
isBlank
:
musicURL
])
{
ext
.
musicLowBandUrl
=
musicLowBandUrl
;
ext
.
musicLowBandUrl
=
musicLowBandUrl
;
ext
.
musicLowBandDataUrl
=
(
musicLowBandDataUrl
==
(
id
)
[
NSNull
null
])
?
nil
:
musicLowBandDataUrl
;
ext
.
musicLowBandDataUrl
=
(
musicLowBandDataUrl
==
(
id
)
[
NSNull
null
])
?
nil
:
musicLowBandDataUrl
;
...
@@ -1279,24 +1168,24 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1279,24 +1168,24 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
ext
.
musicUrl
=
musicURL
;
ext
.
musicUrl
=
musicURL
;
ext
.
musicDataUrl
=
(
dataURL
==
(
id
)
[
NSNull
null
])
?
nil
:
dataURL
;
ext
.
musicDataUrl
=
(
dataURL
==
(
id
)
[
NSNull
null
])
?
nil
:
dataURL
;
}
}
WXMediaMessage
*
message
=
[
self
messageWithTitle
:(
title
==
(
id
)
[
NSNull
null
])
?
nil
:
title
WXMediaMessage
*
message
=
[
self
messageWithTitle
:(
title
==
(
id
)
[
NSNull
null
])
?
nil
:
title
Description
:
description
Description
:
description
Object
:
ext
Object
:
ext
MessageExt
:
(
messageExt
==
(
id
)
[
NSNull
null
])
?
nil
:
messageExt
MessageExt
:
(
messageExt
==
(
id
)
[
NSNull
null
])
?
nil
:
messageExt
MessageAction
:
(
messageAction
==
(
id
)
[
NSNull
null
])
?
nil
:
messageAction
MessageAction
:
(
messageAction
==
(
id
)
[
NSNull
null
])
?
nil
:
messageAction
MediaTag
:
(
tagName
==
(
id
)
[
NSNull
null
])
?
nil
:
tagName
MediaTag
:
(
tagName
==
(
id
)
[
NSNull
null
])
?
nil
:
tagName
MsgSignature
:
(
msgSignature
==
(
id
)
[
NSNull
null
])
?
nil
:
msgSignature
MsgSignature
:
(
msgSignature
==
(
id
)
[
NSNull
null
])
?
nil
:
msgSignature
ThumbData
:
thumbData
ThumbData
:
thumbData
ThumbDataHash
:
(
thumbDataHash
==
(
id
)
[
NSNull
null
])
?
nil
:
thumbDataHash
ThumbDataHash
:
(
thumbDataHash
==
(
id
)
[
NSNull
null
])
?
nil
:
thumbDataHash
];
];
SendMessageToWXReq
*
req
=
[
self
requestWithText
:
nil
SendMessageToWXReq
*
req
=
[
self
requestWithText
:
nil
OrMediaMessage
:
message
OrMediaMessage
:
message
bText
:
NO
bText
:
NO
InScene
:
scene
];
InScene
:
scene
];
[
WXApi
sendReq
:
req
completion
:
completion
];
[
WXApi
sendReq
:
req
completion
:
completion
];
}
}
...
@@ -1304,7 +1193,6 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1304,7 +1193,6 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
VideoLowBandUrl
:
(
NSString
*
)
videoLowBandUrl
VideoLowBandUrl
:
(
NSString
*
)
videoLowBandUrl
Title
:
(
NSString
*
)
title
Title
:
(
NSString
*
)
title
Description
:
(
NSString
*
)
description
Description
:
(
NSString
*
)
description
ThumbImage
:
(
UIImage
*
)
thumbImage
MessageExt
:
(
NSString
*
)
messageExt
MessageExt
:
(
NSString
*
)
messageExt
MessageAction
:
(
NSString
*
)
messageAction
MessageAction
:
(
NSString
*
)
messageAction
TagName
:
(
NSString
*
)
tagName
TagName
:
(
NSString
*
)
tagName
...
@@ -1319,8 +1207,9 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1319,8 +1207,9 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
message
.
messageExt
=
(
messageExt
==
(
id
)
[
NSNull
null
])
?
nil
:
messageExt
;
message
.
messageExt
=
(
messageExt
==
(
id
)
[
NSNull
null
])
?
nil
:
messageExt
;
message
.
messageAction
=
(
messageAction
==
(
id
)
[
NSNull
null
])
?
nil
:
messageAction
;
message
.
messageAction
=
(
messageAction
==
(
id
)
[
NSNull
null
])
?
nil
:
messageAction
;
message
.
mediaTagName
=
(
tagName
==
(
id
)
[
NSNull
null
])
?
nil
:
tagName
;
message
.
mediaTagName
=
(
tagName
==
(
id
)
[
NSNull
null
])
?
nil
:
tagName
;
[
message
setThumbImage
:
thumbImage
];
message
.
thumbData
=
(
thumbData
==
(
id
)
[
NSNull
null
])
?
nil
:
thumbData
;
message
.
thumbDataHash
=
(
thumbDataHash
==
(
id
)
[
NSNull
null
])
?
nil
:
thumbDataHash
;
WXVideoObject
*
ext
=
[
WXVideoObject
object
];
WXVideoObject
*
ext
=
[
WXVideoObject
object
];
if
([
FluwxStringUtil
isBlank
:
videoURL
])
{
if
([
FluwxStringUtil
isBlank
:
videoURL
])
{
ext
.
videoLowBandUrl
=
videoLowBandUrl
;
ext
.
videoLowBandUrl
=
videoLowBandUrl
;
...
@@ -1328,38 +1217,31 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1328,38 +1217,31 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
ext
.
videoUrl
=
videoURL
;
ext
.
videoUrl
=
videoURL
;
}
}
message
.
mediaObject
=
ext
;
message
.
mediaObject
=
ext
;
SendMessageToWXReq
*
req
=
[
self
requestWithText
:
nil
SendMessageToWXReq
*
req
=
[
self
requestWithText
:
nil
OrMediaMessage
:
message
bText
:
NO
InScene
:
scene
];
OrMediaMessage
:
message
bText
:
NO
InScene
:
scene
];
[
WXApi
sendReq
:
req
completion
:
completion
];
[
WXApi
sendReq
:
req
completion
:
completion
];
}
}
-
(
void
)
sendEmotionData
:
(
NSData
*
)
emotionData
-
(
void
)
sendEmotionData
:
(
NSData
*
)
emotionData
ThumbImage
:
(
UIImage
*
)
thumbImage
InScene
:
(
enum
WXScene
)
scene
InScene
:
(
enum
WXScene
)
scene
MsgSignature
:
(
NSString
*
)
msgSignature
MsgSignature
:
(
NSString
*
)
msgSignature
ThumbData
:
(
NSData
*
)
thumbData
ThumbData
:
(
NSData
*
)
thumbData
ThumbDataHash
:
(
NSString
*
)
thumbDataHash
ThumbDataHash
:
(
NSString
*
)
thumbDataHash
completion
:
(
void
(
^
__nullable
)(
BOOL
success
))
completion
{
completion
:
(
void
(
^
__nullable
)(
BOOL
success
))
completion
{
WXMediaMessage
*
message
=
[
WXMediaMessage
message
];
WXMediaMessage
*
message
=
[
WXMediaMessage
message
];
[
message
setThumbImage
:
thumbImage
];
message
.
thumbData
=
(
thumbData
==
(
id
)
[
NSNull
null
])
?
nil
:
thumbData
;
message
.
thumbDataHash
=
(
thumbDataHash
==
(
id
)
[
NSNull
null
])
?
nil
:
thumbDataHash
;
WXEmoticonObject
*
ext
=
[
WXEmoticonObject
object
];
WXEmoticonObject
*
ext
=
[
WXEmoticonObject
object
];
ext
.
emoticonData
=
emotionData
;
ext
.
emoticonData
=
emotionData
;
message
.
mediaObject
=
ext
;
message
.
mediaObject
=
ext
;
NSString
*
signature
=
(
msgSignature
==
(
id
)
[
NSNull
null
])
?
nil
:
msgSignature
;
NSString
*
signature
=
(
msgSignature
==
(
id
)
[
NSNull
null
])
?
nil
:
msgSignature
;
if
(
signature
!=
nil
)
{
if
(
signature
!=
nil
)
{
message
.
msgSignature
=
signature
;
message
.
msgSignature
=
signature
;
}
}
SendMessageToWXReq
*
req
=
[
self
requestWithText
:
nil
SendMessageToWXReq
*
req
=
[
self
requestWithText
:
nil
OrMediaMessage
:
message
bText
:
NO
InScene
:
scene
];
OrMediaMessage
:
message
bText
:
NO
InScene
:
scene
];
[
WXApi
sendReq
:
req
completion
:
completion
];
[
WXApi
sendReq
:
req
completion
:
completion
];
}
}
...
@@ -1367,7 +1249,6 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1367,7 +1249,6 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
fileExtension
:
(
NSString
*
)
extension
fileExtension
:
(
NSString
*
)
extension
Title
:
(
NSString
*
)
title
Title
:
(
NSString
*
)
title
Description
:
(
NSString
*
)
description
Description
:
(
NSString
*
)
description
ThumbImage
:
(
UIImage
*
)
thumbImage
InScene
:
(
enum
WXScene
)
scene
InScene
:
(
enum
WXScene
)
scene
MsgSignature
:
(
NSString
*
)
msgSignature
MsgSignature
:
(
NSString
*
)
msgSignature
ThumbData
:
(
NSData
*
)
thumbData
ThumbData
:
(
NSData
*
)
thumbData
...
@@ -1376,23 +1257,20 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1376,23 +1257,20 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
WXMediaMessage
*
message
=
[
WXMediaMessage
message
];
WXMediaMessage
*
message
=
[
WXMediaMessage
message
];
message
.
title
=
title
;
message
.
title
=
title
;
message
.
description
=
description
;
message
.
description
=
description
;
[
message
setThumbImage
:
thumbImage
];
message
.
thumbData
=
(
thumbData
==
(
id
)
[
NSNull
null
])
?
nil
:
thumbData
;
message
.
thumbDataHash
=
(
thumbDataHash
==
(
id
)
[
NSNull
null
])
?
nil
:
thumbDataHash
;
WXFileObject
*
ext
=
[
WXFileObject
object
];
WXFileObject
*
ext
=
[
WXFileObject
object
];
ext
.
fileExtension
=
extension
;
ext
.
fileExtension
=
extension
;
ext
.
fileData
=
fileData
;
ext
.
fileData
=
fileData
;
message
.
mediaObject
=
ext
;
message
.
mediaObject
=
ext
;
NSString
*
signature
=
(
msgSignature
==
(
id
)
[
NSNull
null
])
?
nil
:
msgSignature
;
NSString
*
signature
=
(
msgSignature
==
(
id
)
[
NSNull
null
])
?
nil
:
msgSignature
;
if
(
signature
!=
nil
)
{
if
(
signature
!=
nil
)
{
message
.
msgSignature
=
signature
;
message
.
msgSignature
=
signature
;
}
}
SendMessageToWXReq
*
req
=
[
self
requestWithText
:
nil
SendMessageToWXReq
*
req
=
[
self
requestWithText
:
nil
OrMediaMessage
:
message
bText
:
NO
InScene
:
scene
];
OrMediaMessage
:
message
bText
:
NO
InScene
:
scene
];
[
WXApi
sendReq
:
req
completion
:
completion
];
[
WXApi
sendReq
:
req
completion
:
completion
];
}
}
...
@@ -1416,30 +1294,22 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1416,30 +1294,22 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
ext
.
webpageUrl
=
(
webpageUrl
==
(
id
)
[
NSNull
null
])
?
nil
:
webpageUrl
;
ext
.
webpageUrl
=
(
webpageUrl
==
(
id
)
[
NSNull
null
])
?
nil
:
webpageUrl
;
ext
.
userName
=
(
userName
==
(
id
)
[
NSNull
null
])
?
nil
:
userName
;
ext
.
userName
=
(
userName
==
(
id
)
[
NSNull
null
])
?
nil
:
userName
;
ext
.
path
=
(
path
==
(
id
)
[
NSNull
null
])
?
nil
:
path
;
ext
.
path
=
(
path
==
(
id
)
[
NSNull
null
])
?
nil
:
path
;
ext
.
withShareTicket
=
withShareTicket
;
ext
.
withShareTicket
=
withShareTicket
;
ext
.
hdImageData
=
hdImageData
;
ext
.
hdImageData
=
hdImageData
;
ext
.
miniProgramType
=
programType
;
ext
.
miniProgramType
=
programType
;
WXMediaMessage
*
message
=
[
self
messageWithTitle
:(
title
==
(
id
)
[
NSNull
null
])
?
nil
:
title
WXMediaMessage
*
message
=
[
self
messageWithTitle
:(
title
==
(
id
)
[
NSNull
null
])
?
nil
:
title
Description
:(
description
==
(
id
)
[
NSNull
null
])
?
nil
:
description
Description
:(
description
==
(
id
)
[
NSNull
null
])
?
nil
:
description
Object
:
ext
Object
:
ext
MessageExt
:
(
messageExt
==
(
id
)
[
NSNull
null
])
?
nil
:
messageExt
MessageExt
:
(
messageExt
==
(
id
)
[
NSNull
null
])
?
nil
:
messageExt
MessageAction
:
(
messageAction
==
(
id
)
[
NSNull
null
])
?
nil
:
messageAction
MessageAction
:
(
messageAction
==
(
id
)
[
NSNull
null
])
?
nil
:
messageAction
MediaTag
:
(
tagName
==
(
id
)
[
NSNull
null
])
?
nil
:
tagName
MediaTag
:
(
tagName
==
(
id
)
[
NSNull
null
])
?
nil
:
tagName
MsgSignature
:
(
msgSignature
==
(
id
)
[
NSNull
null
])
?
nil
:
msgSignature
MsgSignature
:
(
msgSignature
==
(
id
)
[
NSNull
null
])
?
nil
:
msgSignature
ThumbData
:
thumbData
ThumbData
:
(
thumbData
==
(
id
)
[
NSNull
null
]
?
nil
:
thumbData
)
ThumbDataHash
:
(
thumbDataHash
==
(
id
)
[
NSNull
null
])
?
nil
:
thumbDataHash
ThumbDataHash
:
(
thumbDataHash
==
(
id
)
[
NSNull
null
])
?
nil
:
thumbDataHash
];
];
SendMessageToWXReq
*
req
=
[
self
requestWithText
:
nil
SendMessageToWXReq
*
req
=
[
self
requestWithText
:
nil
OrMediaMessage
:
message
bText
:
NO
InScene
:
scene
];
OrMediaMessage
:
message
bText
:
NO
InScene
:
scene
];
[
WXApi
sendReq
:
req
completion
:
completion
];
[
WXApi
sendReq
:
req
completion
:
completion
];
}
}
...
@@ -1450,7 +1320,6 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1450,7 +1320,6 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
Description
:
(
NSString
*
)
description
Description
:
(
NSString
*
)
description
MessageExt
:
(
NSString
*
)
messageExt
MessageExt
:
(
NSString
*
)
messageExt
MessageAction
:
(
NSString
*
)
action
MessageAction
:
(
NSString
*
)
action
ThumbImage
:
(
UIImage
*
)
thumbImage
InScene
:
(
enum
WXScene
)
scene
InScene
:
(
enum
WXScene
)
scene
MsgSignature
:
(
NSString
*
)
msgSignature
MsgSignature
:
(
NSString
*
)
msgSignature
ThumbData
:
(
NSData
*
)
thumbData
ThumbData
:
(
NSData
*
)
thumbData
...
@@ -1460,27 +1329,24 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1460,27 +1329,24 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
ext
.
extInfo
=
info
;
ext
.
extInfo
=
info
;
ext
.
url
=
url
;
ext
.
url
=
url
;
ext
.
fileData
=
data
;
ext
.
fileData
=
data
;
WXMediaMessage
*
message
=
[
self
messageWithTitle
:
title
WXMediaMessage
*
message
=
[
self
messageWithTitle
:
title
Description
:
description
Description
:
description
Object
:
ext
Object
:
ext
MessageExt
:
messageExt
MessageExt
:
messageExt
MessageAction
:
action
MessageAction
:
action
MediaTag
:
nil
MediaTag
:
nil
MsgSignature
:
(
msgSignature
==
(
id
)
[
NSNull
null
])
?
nil
:
msgSignature
MsgSignature
:
(
msgSignature
==
(
id
)
[
NSNull
null
])
?
nil
:
msgSignature
ThumbData
:
thumbData
ThumbData
:
(
thumbData
==
(
id
)
[
NSNull
null
])
?
nil
:
thumbData
ThumbDataHash
:
(
thumbDataHash
==
(
id
)
[
NSNull
null
])
?
nil
:
thumbDataHash
ThumbDataHash
:
(
thumbDataHash
==
(
id
)
[
NSNull
null
])
?
nil
:
thumbDataHash
];
];
SendMessageToWXReq
*
req
=
[
self
requestWithText
:
nil
SendMessageToWXReq
*
req
=
[
self
requestWithText
:
nil
OrMediaMessage
:
message
bText
:
NO
InScene
:
scene
];
OrMediaMessage
:
message
bText
:
NO
InScene
:
scene
];
[
WXApi
sendReq
:
req
completion
:
completion
];
[
WXApi
sendReq
:
req
completion
:
completion
];
}
}
-
(
void
)
addCardsToCardPackage
:
(
NSArray
*
)
cardIds
cardExts
:
(
NSArray
*
)
cardExts
-
(
void
)
addCardsToCardPackage
:
(
NSArray
*
)
cardIds
cardExts
:
(
NSArray
*
)
cardExts
completion
:
(
void
(
^
__nullable
)(
BOOL
success
))
completion
{
completion
:
(
void
(
^
__nullable
)(
BOOL
success
))
completion
{
NSMutableArray
*
cardItems
=
[
NSMutableArray
array
];
NSMutableArray
*
cardItems
=
[
NSMutableArray
array
];
for
(
NSString
*
cardId
in
cardIds
)
{
for
(
NSString
*
cardId
in
cardIds
)
{
...
@@ -1489,13 +1355,13 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1489,13 +1355,13 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
item
.
appID
=
@"wxf8b4f85f3a794e77"
;
item
.
appID
=
@"wxf8b4f85f3a794e77"
;
[
cardItems
addObject
:
item
];
[
cardItems
addObject
:
item
];
}
}
for
(
NSInteger
index
=
0
;
index
<
cardItems
.
count
;
index
++
)
{
for
(
NSInteger
index
=
0
;
index
<
cardItems
.
count
;
index
++
)
{
WXCardItem
*
item
=
cardItems
[
index
];
WXCardItem
*
item
=
cardItems
[
index
];
NSString
*
ext
=
cardExts
[
index
];
NSString
*
ext
=
cardExts
[
index
];
item
.
extMsg
=
ext
;
item
.
extMsg
=
ext
;
}
}
AddCardToWXCardPackageReq
*
req
=
[[
AddCardToWXCardPackageReq
alloc
]
init
];
AddCardToWXCardPackageReq
*
req
=
[[
AddCardToWXCardPackageReq
alloc
]
init
];
req
.
cardAry
=
cardItems
;
req
.
cardAry
=
cardItems
;
[
WXApi
sendReq
:
req
completion
:
completion
];
[
WXApi
sendReq
:
req
completion
:
completion
];
...
@@ -1514,10 +1380,8 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1514,10 +1380,8 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
chooseCardReq
.
signType
=
signType
;
chooseCardReq
.
signType
=
signType
;
chooseCardReq
.
timeStamp
=
timestamp
;
chooseCardReq
.
timeStamp
=
timestamp
;
[
WXApi
sendReq
:
chooseCardReq
completion
:
completion
];
[
WXApi
sendReq
:
chooseCardReq
completion
:
completion
];
}
}
-
(
void
)
sendAuthRequestScope
:
(
NSString
*
)
scope
-
(
void
)
sendAuthRequestScope
:
(
NSString
*
)
scope
State
:
(
NSString
*
)
state
State
:
(
NSString
*
)
state
OpenID
:
(
NSString
*
)
openID
OpenID
:
(
NSString
*
)
openID
...
@@ -1527,8 +1391,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1527,8 +1391,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
req
.
scope
=
scope
;
// @"post_timeline,sns"
req
.
scope
=
scope
;
// @"post_timeline,sns"
req
.
state
=
state
;
req
.
state
=
state
;
req
.
openID
=
openID
;
req
.
openID
=
openID
;
return
[
WXApi
sendAuthReq
:
req
return
[
WXApi
sendAuthReq
:
req
viewController
:
viewController
viewController
:
viewController
delegate
:
self
delegate
:
self
...
@@ -1546,9 +1409,9 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1546,9 +1409,9 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
req
.
state
=
state
;
req
.
state
=
state
;
req
.
openID
=
openID
;
req
.
openID
=
openID
;
req
.
nonautomatic
=
nonAutomatic
;
req
.
nonautomatic
=
nonAutomatic
;
[
WXApi
sendReq
:
req
completion
:
completion
];
[
WXApi
sendReq
:
req
completion
:
completion
];
}
}
...
@@ -1570,17 +1433,17 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1570,17 +1433,17 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
chooseInvoiceReq
.
cardSign
=
cardSign
;
chooseInvoiceReq
.
cardSign
=
cardSign
;
chooseInvoiceReq
.
nonceStr
=
nonceStr
;
chooseInvoiceReq
.
nonceStr
=
nonceStr
;
chooseInvoiceReq
.
signType
=
signType
;
chooseInvoiceReq
.
signType
=
signType
;
// chooseCardReq.cardType = @"INVOICE";
// chooseCardReq.cardType = @"INVOICE";
chooseInvoiceReq
.
timeStamp
=
timestamp
;
chooseInvoiceReq
.
timeStamp
=
timestamp
;
// chooseCardReq.canMultiSelect = 1;
// chooseCardReq.canMultiSelect = 1;
[
WXApi
sendReq
:
chooseInvoiceReq
completion
:
completion
];
[
WXApi
sendReq
:
chooseInvoiceReq
completion
:
completion
];
}
}
-
(
void
)
openCustomerService
:
(
NSString
*
)
url
CorpId
:
(
NSString
*
)
corpId
completion
:
(
void
(
^
)(
BOOL
))
completion
{
-
(
void
)
openCustomerService
:
(
NSString
*
)
url
CorpId
:
(
NSString
*
)
corpId
completion
:
(
void
(
^
)(
BOOL
))
completion
{
WXOpenCustomerServiceReq
*
req
=
[[
WXOpenCustomerServiceReq
alloc
]
init
];
WXOpenCustomerServiceReq
*
req
=
[[
WXOpenCustomerServiceReq
alloc
]
init
];
req
.
corpid
=
corpId
;
//企业ID
req
.
corpid
=
corpId
;
//企业ID
req
.
url
=
url
;
//客服URL
req
.
url
=
url
;
//客服URL
[
WXApi
sendReq
:
req
completion
:
completion
];
[
WXApi
sendReq
:
req
completion
:
completion
];
}
}
...
@@ -1596,14 +1459,14 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1596,14 +1459,14 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
-
(
void
)
handleAuth
:
(
FlutterMethodCall
*
)
call
result
:
(
FlutterResult
)
result
{
-
(
void
)
handleAuth
:
(
FlutterMethodCall
*
)
call
result
:
(
FlutterResult
)
result
{
NSString
*
openId
=
call
.
arguments
[
@"openId"
];
NSString
*
openId
=
call
.
arguments
[
@"openId"
];
[
self
sendAuthRequestScope
:
call
.
arguments
[
@"scope"
]
[
self
sendAuthRequestScope
:
call
.
arguments
[
@"scope"
]
State
:(
call
.
arguments
[
@"state"
]
==
(
id
)
[
NSNull
null
])
?
nil
:
call
.
arguments
[
@"state"
]
State
:(
call
.
arguments
[
@"state"
]
==
(
id
)
[
NSNull
null
])
?
nil
:
call
.
arguments
[
@"state"
]
OpenID
:
(
openId
==
(
id
)
[
NSNull
null
])
?
nil
:
openId
OpenID
:
(
openId
==
(
id
)
[
NSNull
null
])
?
nil
:
openId
NonAutomatic
:
[
call
.
arguments
[
@"nonAutomatic"
]
boolValue
]
NonAutomatic
:
[
call
.
arguments
[
@"nonAutomatic"
]
boolValue
]
completion
:^
(
BOOL
done
)
{
completion
:^
(
BOOL
done
)
{
result
(
@
(
done
));
result
(
@
(
done
));
}];
}];
}
}
-
(
void
)
authByQRCode
:
(
FlutterMethodCall
*
)
call
result
:
(
FlutterResult
)
result
{
-
(
void
)
authByQRCode
:
(
FlutterMethodCall
*
)
call
result
:
(
FlutterResult
)
result
{
...
@@ -1613,7 +1476,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1613,7 +1476,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
NSString
*
timeStamp
=
call
.
arguments
[
@"timeStamp"
];
NSString
*
timeStamp
=
call
.
arguments
[
@"timeStamp"
];
NSString
*
signature
=
call
.
arguments
[
@"signature"
];
NSString
*
signature
=
call
.
arguments
[
@"signature"
];
NSString
*
schemeData
=
(
call
.
arguments
[
@"schemeData"
]
==
(
id
)
[
NSNull
null
])
?
nil
:
call
.
arguments
[
@"schemeData"
];
NSString
*
schemeData
=
(
call
.
arguments
[
@"schemeData"
]
==
(
id
)
[
NSNull
null
])
?
nil
:
call
.
arguments
[
@"schemeData"
];
BOOL
done
=
[
_qrauth
Auth
:
appId
nonceStr
:
nonceStr
timeStamp
:
timeStamp
scope
:
scope
signature
:
signature
schemeData
:
schemeData
];
BOOL
done
=
[
_qrauth
Auth
:
appId
nonceStr
:
nonceStr
timeStamp
:
timeStamp
scope
:
scope
signature
:
signature
schemeData
:
schemeData
];
result
(
@
(
done
));
result
(
@
(
done
));
}
}
...
@@ -1624,19 +1487,19 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1624,19 +1487,19 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
}
}
-
(
void
)
onQrcodeScanned
{
-
(
void
)
onQrcodeScanned
{
if
(
_channel
!=
nil
)
{
if
(
_channel
!=
nil
)
{
[
_channel
invokeMethod
:
@"onQRCodeScanned"
arguments
:@{
@"errCode"
:
@0
}];
[
_channel
invokeMethod
:
@"onQRCodeScanned"
arguments
:@{
@"errCode"
:
@0
}];
}
}
}
}
-
(
void
)
onAuthGotQrcode
:
(
UIImage
*
)
image
{
-
(
void
)
onAuthGotQrcode
:
(
UIImage
*
)
image
{
NSData
*
imageData
=
UIImagePNGRepresentation
(
image
);
NSData
*
imageData
=
UIImagePNGRepresentation
(
image
);
// if (imageData == nil) {
// if (imageData == nil) {
// imageData = UIImageJPEGRepresentation(image, 1);
// imageData = UIImageJPEGRepresentation(image, 1);
// }
// }
if
(
_channel
!=
nil
)
{
if
(
_channel
!=
nil
)
{
[
_channel
invokeMethod
:
@"onAuthGotQRCode"
arguments
:@{
@"errCode"
:
@0
,
@"qrCode"
:
imageData
}];
[
_channel
invokeMethod
:
@"onAuthGotQRCode"
arguments
:@{
@"errCode"
:
@0
,
@"qrCode"
:
imageData
}];
}
}
}
}
-
(
void
)
onAuthFinish
:
(
int
)
errCode
AuthCode
:
(
nullable
NSString
*
)
authCode
{
-
(
void
)
onAuthFinish
:
(
int
)
errCode
AuthCode
:
(
nullable
NSString
*
)
authCode
{
...
@@ -1645,8 +1508,8 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1645,8 +1508,8 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
if
(
authCode
!=
nil
)
{
if
(
authCode
!=
nil
)
{
result
[
@"authCode"
]
=
authCode
;
result
[
@"authCode"
]
=
authCode
;
}
}
if
(
_channel
!=
nil
)
{
if
(
_channel
!=
nil
)
{
[
_channel
invokeMethod
:
@"onAuthByQRCodeFinished"
arguments
:
result
];
[
_channel
invokeMethod
:
@"onAuthByQRCodeFinished"
arguments
:
result
];
}
}
}
}
...
@@ -1658,8 +1521,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1658,8 +1521,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
MediaTag
:
(
NSString
*
)
tagName
MediaTag
:
(
NSString
*
)
tagName
MsgSignature
:
(
NSString
*
)
msgSignature
MsgSignature
:
(
NSString
*
)
msgSignature
ThumbData
:
(
NSData
*
)
thumbData
ThumbData
:
(
NSData
*
)
thumbData
ThumbDataHash
:
(
NSString
*
)
thumbDataHash
ThumbDataHash
:
(
NSString
*
)
thumbDataHash
{
{
WXMediaMessage
*
message
=
[
WXMediaMessage
message
];
WXMediaMessage
*
message
=
[
WXMediaMessage
message
];
message
.
title
=
title
;
message
.
title
=
title
;
message
.
description
=
description
;
message
.
description
=
description
;
...
@@ -1669,7 +1531,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1669,7 +1531,7 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
message
.
mediaTagName
=
tagName
;
message
.
mediaTagName
=
tagName
;
message
.
thumbData
=
thumbData
;
message
.
thumbData
=
thumbData
;
message
.
thumbDataHash
=
thumbDataHash
;
message
.
thumbDataHash
=
thumbDataHash
;
if
(
msgSignature
!=
nil
)
{
if
(
msgSignature
!=
nil
)
{
message
.
msgSignature
=
msgSignature
;
message
.
msgSignature
=
msgSignature
;
}
}
return
message
;
return
message
;
...
@@ -1682,21 +1544,23 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
...
@@ -1682,21 +1544,23 @@ NSObject <FlutterPluginRegistrar> *_fluwxRegistrar;
SendMessageToWXReq
*
req
=
[[
SendMessageToWXReq
alloc
]
init
];
SendMessageToWXReq
*
req
=
[[
SendMessageToWXReq
alloc
]
init
];
req
.
bText
=
bText
;
req
.
bText
=
bText
;
req
.
scene
=
scene
;
req
.
scene
=
scene
;
if
(
bText
)
if
(
bText
)
{
req
.
text
=
text
;
req
.
text
=
text
;
else
}
else
{
req
.
message
=
message
;
req
.
message
=
message
;
}
return
req
;
return
req
;
}
}
-
(
NSString
*
)
fetchWeChatAppId
{
-
(
NSString
*
)
fetchWeChatAppId
{
NSDictionary
*
infoDic
=
[[
NSBundle
mainBundle
]
infoDictionary
];
NSDictionary
*
infoDic
=
[[
NSBundle
mainBundle
]
infoDictionary
];
NSArray
*
types
=
infoDic
[
@"CFBundleURLTypes"
];
NSArray
*
types
=
infoDic
[
@"CFBundleURLTypes"
];
for
(
NSDictionary
*
dic
in
types
)
{
for
(
NSDictionary
*
dic
in
types
)
{
if
([
@"weixin"
isEqualToString
:
dic
[
@"CFBundleURLName"
]])
{
if
([
@"weixin"
isEqualToString
:
dic
[
@"CFBundleURLName"
]])
{
return
dic
[
@"CFBundleURLSchemes"
][
0
];
return
dic
[
@"CFBundleURLSchemes"
][
0
];
}
}
}
}
return
nil
;
return
nil
;
}
}
@end
@end
ios/Classes/FluwxStringUtil.m
浏览文件 @
eeacf738
...
@@ -8,24 +8,17 @@
...
@@ -8,24 +8,17 @@
@implementation
FluwxStringUtil
@implementation
FluwxStringUtil
+
(
BOOL
)
isBlank
:(
NSString
*
)
string
{
+
(
BOOL
)
isBlank
:(
NSString
*
)
string
{
if
(
string
==
nil
)
{
if
(
string
==
nil
)
{
return
YES
;
return
YES
;
}
}
if
([
string
isKindOfClass
:[
NSNull
class
]])
{
if
([
string
isKindOfClass
:[
NSNull
class
]])
{
return
YES
;
return
YES
;
}
}
return
[[
string
stringByTrimmingCharactersInSet
:[
NSCharacterSet
whitespaceCharacterSet
]]
length
]
==
0
;
return
[[
string
stringByTrimmingCharactersInSet
:[
NSCharacterSet
whitespaceCharacterSet
]]
length
]
==
0
;
}
}
+
(
NSString
*
)
nilToEmpty
:(
NSString
*
)
string
{
+
(
NSString
*
)
nilToEmpty
:(
NSString
*
)
string
{
return
string
==
nil
?
@""
:
string
;
return
string
==
nil
?
@""
:
string
;
}
}
@end
@end
ios/Classes/ThumbnailHelper.h
浏览文件 @
eeacf738
...
@@ -6,11 +6,12 @@
...
@@ -6,11 +6,12 @@
@interface
ThumbnailHelper
:
NSObject
@interface
ThumbnailHelper
:
NSObject
+
(
UIImage
*
)
compressImage
:(
UIImage
*
)
image
toByte
:(
NSUInteger
)
maxLength
isPNG
:(
BOOL
)
isPNG
;
+
(
UIImage
*
)
compressImage
:(
UIImage
*
)
image
toByte
:(
NSUInteger
)
maxLength
isPNG
:(
BOOL
)
isPNG
;
/// NSData 压缩后转NSData
/// NSData 压缩后转NSData
/// @param imageData 来源data
/// @param imageData 来源data
/// @param maxLength 压缩目标值,压缩结果在maxLength的0.9~1之间
/// @param maxLength 压缩目标值,压缩结果在maxLength的0.9~1之间
+
(
NSData
*
)
compressImageData
:(
NSData
*
)
imageData
toByte
:(
NSUInteger
)
maxLength
;
+
(
NSData
*
)
compressImageData
:(
NSData
*
)
imageData
toByte
:(
NSUInteger
)
maxLength
;
@end
@end
ios/Classes/ThumbnailHelper.m
浏览文件 @
eeacf738
...
@@ -11,9 +11,9 @@
...
@@ -11,9 +11,9 @@
// Compress by quality
// Compress by quality
CGFloat
compression
=
1
;
CGFloat
compression
=
1
;
NSData
*
data
=
imageData
;
NSData
*
data
=
imageData
;
NSLog
(
@"压缩前 %lu
%lu "
,
(
unsigned
long
)
data
.
length
,
maxLength
);
NSLog
(
@"压缩前 %lu
%lu"
,
(
unsigned
long
)
data
.
length
,
maxLength
);
if
(
data
.
length
<
maxLength
)
return
data
;
if
(
data
.
length
<
maxLength
)
return
data
;
UIImage
*
image
=
[
UIImage
imageWithData
:
imageData
];
UIImage
*
image
=
[
UIImage
imageWithData
:
imageData
];
CGFloat
max
=
1
;
CGFloat
max
=
1
;
CGFloat
min
=
0
;
CGFloat
min
=
0
;
...
@@ -29,20 +29,20 @@
...
@@ -29,20 +29,20 @@
}
}
}
}
NSLog
(
@"压缩第一次 %lu
%lu "
,
(
unsigned
long
)
data
.
length
,
maxLength
);
NSLog
(
@"压缩第一次 %lu
%lu"
,
(
unsigned
long
)
data
.
length
,
maxLength
);
if
(
data
.
length
<
maxLength
)
return
data
;
if
(
data
.
length
<
maxLength
)
return
data
;
UIImage
*
resultImage
;
UIImage
*
resultImage
;
resultImage
=
[
UIImage
imageWithData
:
data
];
resultImage
=
[
UIImage
imageWithData
:
data
];
// Compress by size
// Compress by size
NSUInteger
lastDataLength
=
0
;
NSUInteger
lastDataLength
=
0
;
while
(
data
.
length
>
maxLength
&&
data
.
length
!=
lastDataLength
)
{
while
(
data
.
length
>
maxLength
&&
data
.
length
!=
lastDataLength
)
{
lastDataLength
=
data
.
length
;
lastDataLength
=
data
.
length
;
CGFloat
ratio
=
(
CGFloat
)
maxLength
/
data
.
length
;
CGFloat
ratio
=
(
CGFloat
)
maxLength
/
data
.
length
;
CGSize
size
=
CGSizeMake
((
NSUInteger
)
(
resultImage
.
size
.
width
*
sqrtf
(
ratio
)),
CGSize
size
=
CGSizeMake
((
NSUInteger
)
(
resultImage
.
size
.
width
*
sqrtf
(
ratio
)),
(
NSUInteger
)
(
resultImage
.
size
.
height
*
sqrtf
(
ratio
)));
// Use NSUInteger to prevent white blank
(
NSUInteger
)
(
resultImage
.
size
.
height
*
sqrtf
(
ratio
)));
// Use NSUInteger to prevent white blank
UIGraphicsBeginImageContext
(
size
);
UIGraphicsBeginImageContext
(
size
);
[
resultImage
drawInRect
:
CGRectMake
(
0
,
0
,
size
.
width
,
size
.
height
)];
[
resultImage
drawInRect
:
CGRectMake
(
0
,
0
,
size
.
width
,
size
.
height
)];
resultImage
=
UIGraphicsGetImageFromCurrentImageContext
();
resultImage
=
UIGraphicsGetImageFromCurrentImageContext
();
...
@@ -50,7 +50,7 @@
...
@@ -50,7 +50,7 @@
data
=
UIImageJPEGRepresentation
(
resultImage
,
compression
);
data
=
UIImageJPEGRepresentation
(
resultImage
,
compression
);
}
}
NSLog
(
@"压缩第二次
%lu %lu "
,
(
unsigned
long
)
data
.
length
,
maxLength
);
NSLog
(
@"压缩第二次
%lu %lu"
,
(
unsigned
long
)
data
.
length
,
maxLength
);
return
data
;
return
data
;
}
}
...
@@ -59,7 +59,7 @@
...
@@ -59,7 +59,7 @@
CGFloat
compression
=
1
;
CGFloat
compression
=
1
;
NSData
*
data
=
UIImageJPEGRepresentation
(
image
,
compression
);
NSData
*
data
=
UIImageJPEGRepresentation
(
image
,
compression
);
if
(
data
.
length
<
maxLength
)
return
image
;
if
(
data
.
length
<
maxLength
)
return
image
;
CGFloat
max
=
1
;
CGFloat
max
=
1
;
CGFloat
min
=
0
;
CGFloat
min
=
0
;
for
(
int
i
=
0
;
i
<
6
;
++
i
)
{
for
(
int
i
=
0
;
i
<
6
;
++
i
)
{
...
@@ -73,7 +73,7 @@
...
@@ -73,7 +73,7 @@
break
;
break
;
}
}
}
}
UIImage
*
resultImage
;
UIImage
*
resultImage
;
if
(
isPNG
)
{
if
(
isPNG
)
{
NSData
*
tmp
=
UIImagePNGRepresentation
([
UIImage
imageWithData
:
data
]);
NSData
*
tmp
=
UIImagePNGRepresentation
([
UIImage
imageWithData
:
data
]);
...
@@ -81,24 +81,24 @@
...
@@ -81,24 +81,24 @@
}
else
{
}
else
{
resultImage
=
[
UIImage
imageWithData
:
data
];
resultImage
=
[
UIImage
imageWithData
:
data
];
}
}
if
(
data
.
length
<
maxLength
)
return
resultImage
;
if
(
data
.
length
<
maxLength
)
return
resultImage
;
// Compress by size
// Compress by size
NSUInteger
lastDataLength
=
0
;
NSUInteger
lastDataLength
=
0
;
while
(
data
.
length
>
maxLength
&&
data
.
length
!=
lastDataLength
)
{
while
(
data
.
length
>
maxLength
&&
data
.
length
!=
lastDataLength
)
{
lastDataLength
=
data
.
length
;
lastDataLength
=
data
.
length
;
CGFloat
ratio
=
(
CGFloat
)
maxLength
/
data
.
length
;
CGFloat
ratio
=
(
CGFloat
)
maxLength
/
data
.
length
;
CGSize
size
=
CGSizeMake
((
NSUInteger
)
(
resultImage
.
size
.
width
*
sqrtf
(
ratio
)),
CGSize
size
=
CGSizeMake
((
NSUInteger
)
(
resultImage
.
size
.
width
*
sqrtf
(
ratio
)),
(
NSUInteger
)
(
resultImage
.
size
.
height
*
sqrtf
(
ratio
)));
// Use NSUInteger to prevent white blank
(
NSUInteger
)
(
resultImage
.
size
.
height
*
sqrtf
(
ratio
)));
// Use NSUInteger to prevent white blank
UIGraphicsBeginImageContext
(
size
);
UIGraphicsBeginImageContext
(
size
);
[
resultImage
drawInRect
:
CGRectMake
(
0
,
0
,
size
.
width
,
size
.
height
)];
[
resultImage
drawInRect
:
CGRectMake
(
0
,
0
,
size
.
width
,
size
.
height
)];
resultImage
=
UIGraphicsGetImageFromCurrentImageContext
();
resultImage
=
UIGraphicsGetImageFromCurrentImageContext
();
UIGraphicsEndImageContext
();
UIGraphicsEndImageContext
();
data
=
UIImageJPEGRepresentation
(
resultImage
,
compression
);
data
=
UIImageJPEGRepresentation
(
resultImage
,
compression
);
}
}
return
resultImage
;
return
resultImage
;
}
}
...
@@ -107,27 +107,28 @@
...
@@ -107,27 +107,28 @@
CGSize
imageSize
=
image
.
size
;
CGSize
imageSize
=
image
.
size
;
CGFloat
width
=
imageSize
.
width
;
CGFloat
width
=
imageSize
.
width
;
CGFloat
height
=
imageSize
.
height
;
CGFloat
height
=
imageSize
.
height
;
if
(
width
<=
newSize
.
width
&&
height
<=
newSize
.
height
)
{
if
(
width
<=
newSize
.
width
&&
height
<=
newSize
.
height
)
{
return
image
;
return
image
;
}
}
if
(
width
==
0
||
height
==
0
)
{
if
(
width
==
0
||
height
==
0
)
{
return
image
;
return
image
;
}
}
CGFloat
widthFactor
=
newSize
.
width
/
width
;
CGFloat
widthFactor
=
newSize
.
width
/
width
;
CGFloat
heightFactor
=
newSize
.
height
/
height
;
CGFloat
heightFactor
=
newSize
.
height
/
height
;
CGFloat
scaleFactor
=
(
widthFactor
<
heightFactor
?
widthFactor
:
heightFactor
);
CGFloat
scaleFactor
=
(
widthFactor
<
heightFactor
?
widthFactor
:
heightFactor
);
CGFloat
scaledWidth
=
width
*
scaleFactor
;
CGFloat
scaledWidth
=
width
*
scaleFactor
;
CGFloat
scaledHeight
=
height
*
scaleFactor
;
CGFloat
scaledHeight
=
height
*
scaleFactor
;
CGSize
targetSize
=
CGSizeMake
(
scaledWidth
,
scaledHeight
);
CGSize
targetSize
=
CGSizeMake
(
scaledWidth
,
scaledHeight
);
UIGraphicsBeginImageContext
(
targetSize
);
UIGraphicsBeginImageContext
(
targetSize
);
[
image
drawInRect
:
CGRectMake
(
0
,
0
,
scaledWidth
,
scaledHeight
)];
[
image
drawInRect
:
CGRectMake
(
0
,
0
,
scaledWidth
,
scaledHeight
)];
UIImage
*
newImage
=
UIGraphicsGetImageFromCurrentImageContext
();
UIImage
*
newImage
=
UIGraphicsGetImageFromCurrentImageContext
();
UIGraphicsEndImageContext
();
UIGraphicsEndImageContext
();
return
newImage
;
return
newImage
;
}
}
@end
@end
ios/Classes/public/FluwxDelegate.h
浏览文件 @
eeacf738
...
@@ -15,4 +15,5 @@
...
@@ -15,4 +15,5 @@
+
(
instancetype
)
defaultManager
;
+
(
instancetype
)
defaultManager
;
-
(
void
)
registerWxAPI
:(
NSString
*
)
appId
universalLink
:(
NSString
*
)
universalLink
;
-
(
void
)
registerWxAPI
:(
NSString
*
)
appId
universalLink
:(
NSString
*
)
universalLink
;
@end
@end
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论