Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-fluwx
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
openSourceLibrary
clx-fluwx
Commits
1aa33b92
提交
1aa33b92
authored
9月 05, 2019
作者:
mafanwei
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Make Share Image Support Uint8List
上级
b702de15
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
95 行增加
和
73 行删除
+95
-73
WechatPluginKeys.java
...in/kotlin/com/jarvan/fluwx/constant/WechatPluginKeys.java
+1
-0
FluwxShareHandler.kt
...main/kotlin/com/jarvan/fluwx/handler/FluwxShareHandler.kt
+1
-1
FluwxKeys.m
ios/Classes/constants/FluwxKeys.m
+1
-0
FluwxShareHandler.m
ios/Classes/handler/FluwxShareHandler.m
+43
-2
wechat_share_models.dart
lib/src/models/wechat_share_models.dart
+49
-70
没有找到文件。
android/src/main/kotlin/com/jarvan/fluwx/constant/WechatPluginKeys.java
浏览文件 @
1aa33b92
...
...
@@ -22,6 +22,7 @@ public class WechatPluginKeys {
public
static
final
String
TITLE
=
"title"
;
public
static
final
String
IMAGE
=
"image"
;
public
static
final
String
IMAGE_DATA
=
"imageData"
;
public
static
final
String
THUMBNAIL
=
"thumbnail"
;
public
static
final
String
DESCRIPTION
=
"description"
;
...
...
android/src/main/kotlin/com/jarvan/fluwx/handler/FluwxShareHandler.kt
浏览文件 @
1aa33b92
...
...
@@ -170,7 +170,7 @@ internal class FluwxShareHandler {
GlobalScope
.
launch
(
Dispatchers
.
Main
,
CoroutineStart
.
DEFAULT
)
{
val
byteArray
:
ByteArray
?
=
if
(
imagePath
.
isNullOrBlank
())
{
byteArrayOf
()
call
.
argument
(
WechatPluginKeys
.
IMAGE_DATA
)
?:
byteArrayOf
()
}
else
{
getImageByteArrayCommon
(
registrar
,
imagePath
)
}
...
...
ios/Classes/constants/FluwxKeys.m
浏览文件 @
1aa33b92
...
...
@@ -13,6 +13,7 @@ NSString *const fluwxKeyText = @"text";
NSString
*
const
fluwxKeyTitle
=
@"title"
;
NSString
*
const
fluwxKeyImage
=
@
"image"
;
NSString
*
const
fluwxKeyImageData
=
@
"imageData"
;
NSString
*
const
fluwxKeyThumbnail
=
@"thumbnail"
;
NSString
*
const
fluwxKeyDescription
=
@"description"
;
...
...
ios/Classes/handler/FluwxShareHandler.m
浏览文件 @
1aa33b92
...
...
@@ -67,10 +67,12 @@ NSObject <FlutterPluginRegistrar> *_registrar;
result
(@{
fluwxKeyPlatform
:
fluwxKeyIOS
,
fluwxKeyResult
:
@
(
done
)});
}
-
(
void
)
shareImage
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
{
NSString
*
imagePath
=
call
.
arguments
[
fluwxKeyImage
];
if
([
imagePath
hasPrefix
:
SCHEMA_ASSETS
])
{
if
([
StringUtil
isBlank
:
imagePath
])
{
NSData
*
imageData
=
((
FlutterStandardTypedData
)
call
.
arguments
[
fluwxKeyImageData
]).
data
;
[
self
shareMemoryImage
:
call
result
:
result
imageData
:
imageData
];
}
else
if
([
imagePath
hasPrefix
:
SCHEMA_ASSETS
])
{
[
self
shareAssetImage
:
call
result
:
result
imagePath
:
imagePath
];
}
else
if
([
imagePath
hasPrefix
:
SCHEMA_FILE
])
{
[
self
shareLocalImage
:
call
result
:
result
imagePath
:
imagePath
];
...
...
@@ -81,6 +83,45 @@ NSObject <FlutterPluginRegistrar> *_registrar;
}
-
(
void
)
shareMemoryImage
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
imageData
:(
NSData
*
)
imageData
{
NSString
*
thumbnail
=
call
.
arguments
[
fluwxKeyThumbnail
];
if
([
StringUtil
isBlank
:
thumbnail
])
{
thumbnail
=
imagePath
;
}
dispatch_queue_t
globalQueue
=
dispatch_get_global_queue
(
0
,
0
);
dispatch_async
(
globalQueue
,
^
{
NSURL
*
imageURL
=
[
NSURL
URLWithString
:
imagePath
];
UIImage
*
thumbnailImage
=
[
self
getThumbnail
:
thumbnail
size
:
32
*
1024
];
dispatch_async
(
dispatch_get_main_queue
(),
^
{
NSString
*
scene
=
call
.
arguments
[
fluwxKeyScene
];
BOOL
done
=
[
WXApiRequestHandler
sendImageData
:
imageData
TagName
:
call
.
arguments
[
fluwxKeyMediaTagName
]
MessageExt:
call
.
arguments
[
fluwxKeyMessageExt
]
Action:
call
.
arguments
[
fluwxKeyMessageAction
]
ThumbImage:
thumbnailImage
InScene:
[
StringToWeChatScene
toScene
:
scene
]
title:
call
.
arguments
[
fluwxKeyTitle
]
description:
call
.
arguments
[
fluwxKeyDescription
]
];
result
(@{
fluwxKeyPlatform
:
fluwxKeyIOS
,
fluwxKeyResult
:
@
(
done
)});
});
});
}
-
(
void
)
shareNetworkImage
:(
FlutterMethodCall
*
)
call
result
:(
FlutterResult
)
result
imagePath
:(
NSString
*
)
imagePath
{
...
...
lib/src/models/wechat_share_models.dart
浏览文件 @
1aa33b92
...
...
@@ -14,6 +14,7 @@
* limitations under the License.
*/
import
'dart:io'
;
import
'dart:typed_data'
;
import
'package:flutter/foundation.dart'
;
...
...
@@ -36,11 +37,7 @@ abstract class WeChatShareModel {
final
String
mediaTagName
;
final
WeChatScene
scene
;
WeChatShareModel
(
{
this
.
messageExt
,
this
.
messageAction
,
this
.
mediaTagName
,
this
.
scene
:
WeChatScene
.
SESSION
});
WeChatShareModel
({
this
.
messageExt
,
this
.
messageAction
,
this
.
mediaTagName
,
this
.
scene
:
WeChatScene
.
SESSION
});
Map
toMap
();
}
...
...
@@ -54,20 +51,10 @@ class WeChatShareTextModel extends WeChatShareModel {
final
String
transaction
;
///transaction only works on Android.
WeChatShareTextModel
(
{
String
text
,
String
transaction
,
WeChatScene
scene
,
String
messageExt
,
String
messageAction
,
String
mediaTagName
})
WeChatShareTextModel
({
String
text
,
String
transaction
,
WeChatScene
scene
,
String
messageExt
,
String
messageAction
,
String
mediaTagName
})
:
this
.
text
=
text
??
""
,
this
.
transaction
=
transaction
??
"text"
,
super
(
mediaTagName:
mediaTagName
,
messageAction:
messageAction
,
messageExt:
messageExt
,
scene:
scene
);
super
(
mediaTagName:
mediaTagName
,
messageAction:
messageAction
,
messageExt:
messageExt
,
scene:
scene
);
@override
Map
toMap
()
{
...
...
@@ -127,11 +114,7 @@ class WeChatShareMiniProgramModel extends WeChatShareModel {
assert
(
webPageUrl
!=
null
&&
webPageUrl
.
isNotEmpty
),
assert
(
userName
!=
null
&&
userName
.
isNotEmpty
),
assert
(
path
!=
null
&&
path
.
isNotEmpty
),
super
(
mediaTagName:
mediaTagName
,
messageAction:
messageAction
,
messageExt:
messageExt
,
scene:
scene
);
super
(
mediaTagName:
mediaTagName
,
messageAction:
messageAction
,
messageExt:
messageExt
,
scene:
scene
);
@override
Map
toMap
()
{
...
...
@@ -159,47 +142,55 @@ class WeChatShareImageModel extends WeChatShareModel {
final
String
thumbnail
;
final
String
title
;
final
String
description
;
final
Uint8List
imageData
;
WeChatShareImageModel
(
{
String
transaction
,
@required
this
.
image
,
this
.
description
,
String
thumbnail
,
WeChatScene
scene
,
String
messageExt
,
String
messageAction
,
String
mediaTagName
,
this
.
title
})
:
this
.
transaction
=
transaction
??
"text"
,
WeChatShareImageModel
(
{
String
transaction
,
@required
this
.
image
,
this
.
description
,
String
thumbnail
,
WeChatScene
scene
,
String
messageExt
,
String
messageAction
,
String
mediaTagName
,
this
.
title
,
})
:
this
.
transaction
=
transaction
??
"text"
,
this
.
thumbnail
=
thumbnail
??
""
,
assert
(
image
!=
null
),
super
(
mediaTagName:
mediaTagName
,
messageAction:
messageAction
,
messageExt:
messageExt
,
scene:
scene
);
this
.
imageData
=
null
,
super
(
mediaTagName:
mediaTagName
,
messageAction:
messageAction
,
messageExt:
messageExt
,
scene:
scene
);
WeChatShareImageModel
.
fromFile
(
File
imageFile
,
{
String
transaction
,
this
.
description
,
String
thumbnail
,
WeChatScene
scene
,
String
messageExt
,
String
messageAction
,
String
mediaTagName
,
this
.
title
})
:
this
.
image
=
"file://
${imageFile.path}
"
,
File
imageFile
,
{
String
transaction
,
this
.
description
,
String
thumbnail
,
WeChatScene
scene
,
String
messageExt
,
String
messageAction
,
String
mediaTagName
,
this
.
title
,
})
:
this
.
image
=
"file://
${imageFile.path}
"
,
this
.
transaction
=
transaction
??
"text"
,
this
.
thumbnail
=
thumbnail
??
""
,
super
(
mediaTagName:
mediaTagName
,
messageAction:
messageAction
,
messageExt:
messageExt
,
scene:
scene
);
this
.
imageData
=
null
,
super
(
mediaTagName:
mediaTagName
,
messageAction:
messageAction
,
messageExt:
messageExt
,
scene:
scene
);
WeChatShareImageModel
.
fromUint8List
({
@required
this
.
imageData
,
String
transaction
,
this
.
description
,
String
thumbnail
,
WeChatScene
scene
,
String
messageExt
,
String
messageAction
,
String
mediaTagName
,
this
.
title
,
})
:
this
.
transaction
=
transaction
??
"text"
,
this
.
thumbnail
=
thumbnail
??
""
,
this
.
image
=
""
,
assert
(
imageData
!=
null
),
super
(
mediaTagName:
mediaTagName
,
messageAction:
messageAction
,
messageExt:
messageExt
,
scene:
scene
);
@override
Map
toMap
()
{
...
...
@@ -245,11 +236,7 @@ class WeChatShareMusicModel extends WeChatShareModel {
})
:
this
.
transaction
=
transaction
??
"text"
,
this
.
thumbnail
=
thumbnail
??
""
,
assert
(
musicUrl
!=
null
||
musicLowBandUrl
!=
null
),
super
(
mediaTagName:
mediaTagName
,
messageAction:
messageAction
,
messageExt:
messageExt
,
scene:
scene
);
super
(
mediaTagName:
mediaTagName
,
messageAction:
messageAction
,
messageExt:
messageExt
,
scene:
scene
);
@override
Map
toMap
()
{
...
...
@@ -299,11 +286,7 @@ class WeChatShareVideoModel extends WeChatShareModel {
this
.
thumbnail
=
thumbnail
??
""
,
assert
(
videoUrl
!=
null
||
videoLowBandUrl
!=
null
),
assert
(
thumbnail
!=
null
),
super
(
mediaTagName:
mediaTagName
,
messageAction:
messageAction
,
messageExt:
messageExt
,
scene:
scene
);
super
(
mediaTagName:
mediaTagName
,
messageAction:
messageAction
,
messageExt:
messageExt
,
scene:
scene
);
@override
Map
toMap
()
{
...
...
@@ -342,11 +325,7 @@ class WeChatShareWebPageModel extends WeChatShareModel {
})
:
this
.
transaction
=
transaction
??
"text"
,
assert
(
webPage
!=
null
),
assert
(
thumbnail
!=
null
),
super
(
mediaTagName:
mediaTagName
,
messageAction:
messageAction
,
messageExt:
messageExt
,
scene:
scene
);
super
(
mediaTagName:
mediaTagName
,
messageAction:
messageAction
,
messageExt:
messageExt
,
scene:
scene
);
@override
Map
toMap
()
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论