Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
R
react-native-social
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wind.wang
react-native-social
Commits
ecb4c7f4
Commit
ecb4c7f4
authored
Oct 22, 2021
by
wind.wang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加分享小程序
parent
69a49fc0
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
380 additions
and
237 deletions
+380
-237
BaseWXPayEntryActivity.java
...rc/main/java/com/rnsocial/pay/BaseWXPayEntryActivity.java
+51
-27
ReactShareModule.java
...id/src/main/java/com/rnsocial/share/ReactShareModule.java
+121
-88
Share.java
android/src/main/java/com/rnsocial/share/Share.java
+160
-121
index.js
index.js
+10
-0
RNSocialNativeBridgeManager.m
ios/clazz/RNSocialNativeBridgeManager.m
+8
-0
RNShareConfig.h
ios/clazz/share/RNShareConfig.h
+2
-0
RNShareConfig.m
ios/clazz/share/RNShareConfig.m
+27
-0
package.json
package.json
+1
-1
No files found.
android/src/main/java/com/rnsocial/pay/BaseWXPayEntryActivity.java
View file @
ecb4c7f4
...
...
@@ -3,53 +3,77 @@ package com.rnsocial.pay;
import
android.app.Activity
;
import
android.content.Intent
;
import
android.os.Bundle
;
//import android
.support
.annotation.Nullable;
//import android
x
.annotation.Nullable;
import
androidx.annotation.Nullable
;
import
com.rnsocial.SocialConfig
;
import
com.rnsocial.pay.channel.WechatPay
;
import
com.tencent.mm.opensdk.constants.ConstantsAPI
;
import
com.tencent.mm.opensdk.modelbase.BaseReq
;
import
com.tencent.mm.opensdk.modelbase.BaseResp
;
import
com.tencent.mm.opensdk.modelbiz.WXLaunchMiniProgram
;
import
com.tencent.mm.opensdk.openapi.IWXAPI
;
import
com.tencent.mm.opensdk.openapi.IWXAPIEventHandler
;
import
com.tencent.mm.opensdk.openapi.WXAPIFactory
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
/**
* User : yh
* Date : 17/5/10
*/
public
class
BaseWXPayEntryActivity
extends
Activity
implements
IWXAPIEventHandler
{
private
IWXAPI
api
;
public
class
BaseWXPayEntryActivity
extends
Activity
implements
IWXAPIEventHandler
{
private
IWXAPI
api
;
@Override
protected
void
onCreate
(
@Nullable
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
api
=
WXAPIFactory
.
createWXAPI
(
this
,
SocialConfig
.
getWechatId
());
api
.
handleIntent
(
getIntent
(),
this
);
}
@Override
protected
void
onCreate
(
@Nullable
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
api
=
WXAPIFactory
.
createWXAPI
(
this
,
SocialConfig
.
getWechatId
());
api
.
handleIntent
(
getIntent
(),
this
);
}
@Override
protected
void
onNewIntent
(
Intent
intent
)
{
super
.
onNewIntent
(
intent
);
setIntent
(
intent
);
api
.
handleIntent
(
intent
,
this
);
}
@Override
protected
void
onNewIntent
(
Intent
intent
)
{
super
.
onNewIntent
(
intent
);
setIntent
(
intent
);
api
.
handleIntent
(
intent
,
this
);
}
@Override
public
void
onReq
(
BaseReq
baseReq
)
{
@Override
public
void
onReq
(
BaseReq
baseReq
)
{
}
// -1 错误 可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。
@Override
public
void
onResp
(
BaseResp
baseResp
)
{
if
(
baseResp
.
errCode
==
0
){
PayManager
.
getInstance
().
payResultCallBack
(
true
,
null
,
null
);
}
else
{
PayManager
.
getInstance
().
payResultCallBack
(
false
,
"pay.error"
,
"支付失败"
);
}
// -1 错误 可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。
@Override
public
void
onResp
(
BaseResp
baseResp
)
{
if
(
baseResp
.
getType
()
==
ConstantsAPI
.
COMMAND_LAUNCH_WX_MINIPROGRAM
)
{
WXLaunchMiniProgram
.
Resp
launchMiniProResp
=
(
WXLaunchMiniProgram
.
Resp
)
baseResp
;
String
result
=
launchMiniProResp
.
extMsg
;
//20 成功, 30 失败
JSONObject
jsonValue
=
null
;
try
{
jsonValue
=
new
JSONObject
(
result
);
String
status
=
jsonValue
.
getString
(
"status"
);
String
message
=
jsonValue
.
getString
(
"errMsg"
);
if
(
status
==
"20"
)
{
PayManager
.
getInstance
().
payResultCallBack
(
true
,
null
,
null
);
}
else
{
PayManager
.
getInstance
().
payResultCallBack
(
false
,
status
,
message
);
}
this
.
finish
();
}
catch
(
JSONException
e
)
{
e
.
printStackTrace
();
}
finish
();
}
else
if
(
baseResp
.
errCode
==
0
)
{
PayManager
.
getInstance
().
payResultCallBack
(
true
,
null
,
null
);
}
else
{
PayManager
.
getInstance
().
payResultCallBack
(
false
,
"pay.error"
,
"支付失败"
);
}
this
.
finish
();
}
}
android/src/main/java/com/rnsocial/share/ReactShareModule.java
View file @
ecb4c7f4
...
...
@@ -11,6 +11,7 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule;
import
com.facebook.react.bridge.ReactMethod
;
import
com.facebook.react.bridge.ReadableMap
;
import
com.facebook.react.bridge.WritableMap
;
import
com.umeng.socialize.media.UMMin
;
/**
* User : yh
...
...
@@ -18,57 +19,89 @@ import com.facebook.react.bridge.WritableMap;
*/
public
class
ReactShareModule
extends
ReactContextBaseJavaModule
{
private
final
static
String
REACT_NAME
=
"ReactShare"
;
private
final
static
String
REACT_NAME
=
"ReactShare"
;
public
ReactShareModule
(
ReactApplicationContext
reactContext
)
{
super
(
reactContext
);
}
public
ReactShareModule
(
ReactApplicationContext
reactContext
)
{
super
(
reactContext
);
}
@Override
public
String
getName
()
{
return
REACT_NAME
;
}
@Override
public
String
getName
()
{
return
REACT_NAME
;
}
@ReactMethod
public
void
share
(
final
ReadableMap
params
,
final
Callback
callback
){
final
Activity
activity
=
getCurrentActivity
();
if
(
params
==
null
){
Toast
.
makeText
(
activity
,
"分享参数异常"
,
Toast
.
LENGTH_SHORT
).
show
();
return
;
@ReactMethod
public
void
share
(
final
ReadableMap
params
,
final
Callback
callback
)
{
final
Activity
activity
=
getCurrentActivity
();
if
(
params
==
null
)
{
Toast
.
makeText
(
activity
,
"分享参数异常"
,
Toast
.
LENGTH_SHORT
).
show
();
return
;
}
if
(
activity
!=
null
)
{
activity
.
runOnUiThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
try
{
Share
.
share
(
activity
,
getShareContent
(
params
),
new
ShareListener
()
{
@Override
public
void
onResult
(
boolean
success
,
String
result
,
Throwable
throwable
)
{
if
(
callback
==
null
)
{
return
;
}
WritableMap
resultMap
=
Arguments
.
createMap
();
resultMap
.
putBoolean
(
"success"
,
success
);
resultMap
.
putString
(
"message"
,
result
);
callback
.
invoke
(
resultMap
);
}
});
}
catch
(
Exception
e
)
{
Log
.
e
(
REACT_NAME
,
e
.
getMessage
());
}
}
if
(
activity
!=
null
){
activity
.
runOnUiThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
try
{
Share
.
share
(
activity
,
getShareContent
(
params
),
new
ShareListener
()
{
@Override
public
void
onResult
(
boolean
success
,
String
result
,
Throwable
throwable
)
{
if
(
callback
==
null
){
return
;
}
WritableMap
resultMap
=
Arguments
.
createMap
();
resultMap
.
putBoolean
(
"success"
,
success
);
resultMap
.
putString
(
"message"
,
result
);
callback
.
invoke
(
resultMap
);
}
});
}
catch
(
Exception
e
){
Log
.
e
(
REACT_NAME
,
e
.
getMessage
());
}
});
}
}
@ReactMethod
public
void
shareToMiniProgram
(
final
ReadableMap
params
,
final
Callback
callback
)
{
final
Activity
activity
=
getCurrentActivity
();
if
(
params
==
null
)
{
Toast
.
makeText
(
activity
,
"分享参数异常"
,
Toast
.
LENGTH_SHORT
).
show
();
return
;
}
if
(
activity
!=
null
)
{
activity
.
runOnUiThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
try
{
Share
.
shareToMiniProgram
(
activity
,
params
,
new
ShareListener
()
{
@Override
public
void
onResult
(
boolean
success
,
String
result
,
Throwable
throwable
)
{
if
(
callback
==
null
)
{
return
;
}
WritableMap
resultMap
=
Arguments
.
createMap
();
resultMap
.
putBoolean
(
"success"
,
success
);
resultMap
.
putString
(
"message"
,
result
);
callback
.
invoke
(
resultMap
);
}
});
}
catch
(
Exception
e
)
{
Log
.
e
(
REACT_NAME
,
e
.
getMessage
());
}
}
});
}
}
@ReactMethod
public
void
shareImgWithBoard
(
final
ReadableMap
params
,
final
Callback
callback
){
public
void
shareImgWithBoard
(
final
ReadableMap
params
,
final
Callback
callback
)
{
final
Activity
activity
=
getCurrentActivity
();
if
(
params
==
null
)
{
if
(
params
==
null
)
{
Toast
.
makeText
(
activity
,
"分享参数异常"
,
Toast
.
LENGTH_SHORT
).
show
();
return
;
}
if
(
activity
!=
null
)
{
if
(
activity
!=
null
)
{
activity
.
runOnUiThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
...
...
@@ -76,7 +109,7 @@ public class ReactShareModule extends ReactContextBaseJavaModule {
Share
.
shareImgWithBoard
(
activity
,
params
,
new
ShareListener
()
{
@Override
public
void
onResult
(
boolean
success
,
String
result
,
Throwable
throwable
)
{
if
(
callback
==
null
){
if
(
callback
==
null
)
{
return
;
}
WritableMap
resultMap
=
Arguments
.
createMap
();
...
...
@@ -85,68 +118,68 @@ public class ReactShareModule extends ReactContextBaseJavaModule {
callback
.
invoke
(
resultMap
);
}
});
}
catch
(
Exception
e
)
{
Log
.
e
(
REACT_NAME
,
e
.
getMessage
());
}
catch
(
Exception
e
)
{
Log
.
e
(
REACT_NAME
,
e
.
getMessage
());
}
}
});
}
}
@ReactMethod
public
void
shareImg
(
final
ReadableMap
params
,
final
Callback
callback
)
{
final
Activity
activity
=
getCurrentActivity
();
if
(
params
==
null
)
{
Toast
.
makeText
(
activity
,
"分享参数异常"
,
Toast
.
LENGTH_SHORT
).
show
();
return
;
}
if
(
activity
!=
null
)
{
@ReactMethod
public
void
shareImg
(
final
ReadableMap
params
,
final
Callback
callback
)
{
final
Activity
activity
=
getCurrentActivity
();
if
(
params
==
null
)
{
Toast
.
makeText
(
activity
,
"分享参数异常"
,
Toast
.
LENGTH_SHORT
).
show
();
return
;
}
if
(
activity
!=
null
)
{
activity
.
runOnUiThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
try
{
Share
.
shareImg
(
activity
,
params
,
new
ShareListener
()
{
@Override
public
void
onResult
(
boolean
success
,
String
result
,
Throwable
throwable
)
{
if
(
callback
==
null
){
return
;
}
WritableMap
resultMap
=
Arguments
.
createMap
();
resultMap
.
putBoolean
(
"success"
,
success
);
resultMap
.
putString
(
"message"
,
result
);
callback
.
invoke
(
resultMap
);
}
});
}
catch
(
Exception
e
){
Log
.
e
(
REACT_NAME
,
e
.
getMessage
());
}
activity
.
runOnUiThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
try
{
Share
.
shareImg
(
activity
,
params
,
new
ShareListener
()
{
@Override
public
void
onResult
(
boolean
success
,
String
result
,
Throwable
throwable
)
{
if
(
callback
==
null
)
{
return
;
}
WritableMap
resultMap
=
Arguments
.
createMap
();
resultMap
.
putBoolean
(
"success"
,
success
);
resultMap
.
putString
(
"message"
,
result
);
callback
.
invoke
(
resultMap
);
}
});
}
catch
(
Exception
e
)
{
Log
.
e
(
REACT_NAME
,
e
.
getMessage
());
}
}
});
}
}
private
ShareContent
getShareContent
(
ReadableMap
params
){
ShareContent
shareContent
=
new
ShareContent
();
if
(
params
.
hasKey
(
"title"
)){
shareContent
.
title
=
params
.
getString
(
"title"
);
}
if
(
params
.
hasKey
(
"url"
)){
shareContent
.
url
=
params
.
getString
(
"url"
);
}
if
(
params
.
hasKey
(
"content"
)){
shareContent
.
content
=
params
.
getString
(
"content"
);
}
if
(
params
.
hasKey
(
"image"
)){
shareContent
.
image
=
params
.
getString
(
"image"
);
}
if
(
params
.
hasKey
(
"useContentTitle"
)){
shareContent
.
useContentTitle
=
params
.
getBoolean
(
"useContentTitle"
);
}
if
(
params
.
hasKey
(
"showPoster"
)){
shareContent
.
showPoster
=
true
;
}
return
shareContent
;
private
ShareContent
getShareContent
(
ReadableMap
params
)
{
ShareContent
shareContent
=
new
ShareContent
();
if
(
params
.
hasKey
(
"title"
))
{
shareContent
.
title
=
params
.
getString
(
"title"
);
}
if
(
params
.
hasKey
(
"url"
))
{
shareContent
.
url
=
params
.
getString
(
"url"
);
}
if
(
params
.
hasKey
(
"content"
))
{
shareContent
.
content
=
params
.
getString
(
"content"
);
}
if
(
params
.
hasKey
(
"image"
))
{
shareContent
.
image
=
params
.
getString
(
"image"
);
}
if
(
params
.
hasKey
(
"useContentTitle"
))
{
shareContent
.
useContentTitle
=
params
.
getBoolean
(
"useContentTitle"
);
}
if
(
params
.
hasKey
(
"showPoster"
))
{
shareContent
.
showPoster
=
true
;
}
return
shareContent
;
}
}
android/src/main/java/com/rnsocial/share/Share.java
View file @
ecb4c7f4
...
...
@@ -8,6 +8,7 @@ import android.graphics.Color;
import
android.util.Base64
;
import
com.facebook.react.bridge.ReadableMap
;
import
com.facebook.react.modules.statusbar.StatusBarModule
;
import
com.rnsocial.SocialConfig
;
import
com.umeng.socialize.ShareAction
;
import
com.umeng.socialize.UMShareAPI
;
...
...
@@ -15,6 +16,7 @@ import com.umeng.socialize.UMShareListener;
import
com.umeng.socialize.bean.PlatformName
;
import
com.umeng.socialize.bean.SHARE_MEDIA
;
import
com.umeng.socialize.media.UMImage
;
import
com.umeng.socialize.media.UMMin
;
import
com.umeng.socialize.media.UMWeb
;
import
com.umeng.socialize.shareboard.ShareBoardConfig
;
import
com.umeng.socialize.shareboard.SnsPlatform
;
...
...
@@ -30,96 +32,133 @@ import java.util.List;
*/
public
class
Share
{
private
static
SHARE_MEDIA
[]
getShareMedias
()
{
List
<
SHARE_MEDIA
>
medias
=
new
ArrayList
<
SHARE_MEDIA
>();
for
(
ShareChannel
channel
:
SocialConfig
.
getShareChannels
())
{
if
(
channel
==
ShareChannel
.
Weibo
)
{
medias
.
add
(
SHARE_MEDIA
.
SINA
);
PlatformName
.
SINA
=
"新浪微博"
;
}
else
if
(
channel
==
ShareChannel
.
Weixin
)
{
medias
.
add
(
SHARE_MEDIA
.
WEIXIN
);
PlatformName
.
WEIXIN
=
"微信好友"
;
}
else
if
(
channel
==
ShareChannel
.
WeixinCycle
)
{
medias
.
add
(
SHARE_MEDIA
.
WEIXIN_CIRCLE
);
PlatformName
.
WEIXIN_CIRCLE
=
"朋友圈"
;
}
else
if
(
channel
==
ShareChannel
.
QQ
)
{
medias
.
add
(
SHARE_MEDIA
.
QQ
);
PlatformName
.
QQ
=
"QQ好友"
;
}
else
if
(
channel
==
ShareChannel
.
QZONE
)
{
medias
.
add
(
SHARE_MEDIA
.
QZONE
);
}
else
if
(
channel
==
ShareChannel
.
AliPayShare
)
{
medias
.
add
(
SHARE_MEDIA
.
ALIPAY
);
}
else
if
(
channel
==
ShareChannel
.
DingTalk
)
{
medias
.
add
(
SHARE_MEDIA
.
DINGTALK
);
}
}
return
medias
.
toArray
(
new
SHARE_MEDIA
[
medias
.
size
()]);
private
static
SHARE_MEDIA
[]
getShareMedias
()
{
List
<
SHARE_MEDIA
>
medias
=
new
ArrayList
<
SHARE_MEDIA
>();
for
(
ShareChannel
channel
:
SocialConfig
.
getShareChannels
())
{
if
(
channel
==
ShareChannel
.
Weibo
)
{
medias
.
add
(
SHARE_MEDIA
.
SINA
);
PlatformName
.
SINA
=
"新浪微博"
;
}
else
if
(
channel
==
ShareChannel
.
Weixin
)
{
medias
.
add
(
SHARE_MEDIA
.
WEIXIN
);
PlatformName
.
WEIXIN
=
"微信好友"
;
}
else
if
(
channel
==
ShareChannel
.
WeixinCycle
)
{
medias
.
add
(
SHARE_MEDIA
.
WEIXIN_CIRCLE
);
PlatformName
.
WEIXIN_CIRCLE
=
"朋友圈"
;
}
else
if
(
channel
==
ShareChannel
.
QQ
)
{
medias
.
add
(
SHARE_MEDIA
.
QQ
);
PlatformName
.
QQ
=
"QQ好友"
;
}
else
if
(
channel
==
ShareChannel
.
QZONE
)
{
medias
.
add
(
SHARE_MEDIA
.
QZONE
);
}
else
if
(
channel
==
ShareChannel
.
AliPayShare
)
{
medias
.
add
(
SHARE_MEDIA
.
ALIPAY
);
}
else
if
(
channel
==
ShareChannel
.
DingTalk
)
{
medias
.
add
(
SHARE_MEDIA
.
DINGTALK
);
}
}
return
medias
.
toArray
(
new
SHARE_MEDIA
[
medias
.
size
()]);
}
public
static
void
share
(
final
Activity
mContext
,
final
ShareContent
content
,
final
ShareListener
listener
)
{
ShareBoardConfig
boardConfig
=
new
ShareBoardConfig
();
boardConfig
.
setTitleText
(
"分享到"
);
boardConfig
.
setCancelButtonText
(
"取消"
);
boardConfig
.
setTitleTextColor
(
Color
.
BLACK
);
boardConfig
.
setCancelButtonTextColor
(
Color
.
BLACK
);
boardConfig
.
setShareboardBackgroundColor
(
Color
.
WHITE
);
boardConfig
.
setMenuItemBackgroundColor
(
Color
.
TRANSPARENT
);
boardConfig
.
setMenuItemBackgroundShape
(
ShareBoardConfig
.
BG_SHAPE_CIRCULAR
);
boardConfig
.
setIndicatorVisibility
(
false
);
ShareAction
sa
=
new
ShareAction
(
mContext
);
sa
.
setDisplayList
(
getShareMedias
());
if
(
content
.
showPoster
)
{
sa
.
addButton
(
"生成海报"
,
"umeng_sharebutton_poster"
,
"poster_icon"
,
"poster_icon"
);
// 自定义按钮
}
public
static
void
share
(
final
Activity
mContext
,
final
ShareContent
content
,
final
ShareListener
listener
)
{
ShareBoardConfig
boardConfig
=
new
ShareBoardConfig
();
boardConfig
.
setTitleText
(
"分享到"
);
boardConfig
.
setCancelButtonText
(
"取消"
);
boardConfig
.
setTitleTextColor
(
Color
.
BLACK
);
boardConfig
.
setCancelButtonTextColor
(
Color
.
BLACK
);
boardConfig
.
setShareboardBackgroundColor
(
Color
.
WHITE
);
boardConfig
.
setMenuItemBackgroundColor
(
Color
.
TRANSPARENT
);
boardConfig
.
setMenuItemBackgroundShape
(
ShareBoardConfig
.
BG_SHAPE_CIRCULAR
);
boardConfig
.
setIndicatorVisibility
(
false
);
ShareAction
sa
=
new
ShareAction
(
mContext
);
sa
.
setDisplayList
(
getShareMedias
());
if
(
content
.
showPoster
)
{
sa
.
addButton
(
"生成海报"
,
"umeng_sharebutton_poster"
,
"poster_icon"
,
"poster_icon"
);
// 自定义按钮
}
// sa.setDisplayList(getShareMedias());
sa
.
setShareboardclickCallback
(
new
ShareBoardlistener
()
{
sa
.
setShareboardclickCallback
(
new
ShareBoardlistener
()
{
@Override
public
void
onclick
(
SnsPlatform
snsPlatform
,
SHARE_MEDIA
share_media
)
{
if
(
share_media
==
null
)
{
//根据key来区分自定义按钮的类型,并进行对应的操作
if
(
snsPlatform
.
mKeyword
.
equals
(
"umeng_sharebutton_poster"
))
{
listener
.
onResult
(
true
,
"createPoster"
,
null
);
return
;
}
}
String
resultTitle
=
content
.
useContentTitle
&&
(
share_media
==
SHARE_MEDIA
.
WEIXIN_CIRCLE
)
?
content
.
content
:
content
.
title
;
UMWeb
web
=
new
UMWeb
(
content
.
url
);
UMImage
img
=
new
UMImage
(
mContext
,
content
.
image
);
img
.
compressStyle
=
UMImage
.
CompressStyle
.
SCALE
;
web
.
setDescription
(
content
.
content
);
web
.
setTitle
(
resultTitle
);
web
.
setThumb
(
img
);
new
ShareAction
(
mContext
).
setPlatform
(
share_media
)
.
setCallback
(
new
UMShareListener
()
{
@Override
public
void
onStart
(
SHARE_MEDIA
share_media
)
{
}
@Override
public
void
onclick
(
SnsPlatform
snsPlatform
,
SHARE_MEDIA
share_media
)
{
if
(
share_media
==
null
)
{
//根据key来区分自定义按钮的类型,并进行对应的操作
if
(
snsPlatform
.
mKeyword
.
equals
(
"umeng_sharebutton_poster"
))
{
listener
.
onResult
(
true
,
"createPoster"
,
null
);
return
;
}
}
String
resultTitle
=
content
.
useContentTitle
&&
(
share_media
==
SHARE_MEDIA
.
WEIXIN_CIRCLE
)
?
content
.
content
:
content
.
title
;
UMWeb
web
=
new
UMWeb
(
content
.
url
);
UMImage
img
=
new
UMImage
(
mContext
,
content
.
image
);
img
.
compressStyle
=
UMImage
.
CompressStyle
.
SCALE
;
web
.
setDescription
(
content
.
content
);
web
.
setTitle
(
resultTitle
);
web
.
setThumb
(
img
);
new
ShareAction
(
mContext
).
setPlatform
(
share_media
)
.
setCallback
(
new
UMShareListener
()
{
@Override
public
void
onStart
(
SHARE_MEDIA
share_media
)
{
}
@Override
public
void
onResult
(
SHARE_MEDIA
share_media
)
{
listener
.
onResult
(
true
,
""
,
null
);
}
@Override
public
void
onError
(
SHARE_MEDIA
share_media
,
Throwable
throwable
)
{
listener
.
onResult
(
false
,
throwable
.
getMessage
(),
throwable
);
}
@Override
public
void
onCancel
(
SHARE_MEDIA
share_media
)
{
Throwable
throwable
=
new
Throwable
(
"取消分享"
);
listener
.
onResult
(
false
,
"取消分享"
,
throwable
);
}
}).
withText
(
content
.
title
)
.
withSubject
(
content
.
content
)
.
withMedia
(
web
)
.
share
();
public
void
onResult
(
SHARE_MEDIA
share_media
)
{
listener
.
onResult
(
true
,
""
,
null
);
}
}).
open
(
boardConfig
);
}
@Override
public
void
onError
(
SHARE_MEDIA
share_media
,
Throwable
throwable
)
{
listener
.
onResult
(
false
,
throwable
.
getMessage
(),
throwable
);
}
@Override
public
void
onCancel
(
SHARE_MEDIA
share_media
)
{
Throwable
throwable
=
new
Throwable
(
"取消分享"
);
listener
.
onResult
(
false
,
"取消分享"
,
throwable
);
}
}).
withText
(
content
.
title
)
.
withSubject
(
content
.
content
)
.
withMedia
(
web
)
.
share
();
}
}).
open
(
boardConfig
);
}
public
static
void
shareToMiniProgram
(
final
Activity
mContext
,
final
ReadableMap
params
,
final
ShareListener
listener
)
{
UMMin
umMin
=
new
UMMin
(
"https://m.hisense.com"
);
//兼容低版本的网页链接
umMin
.
setThumb
(
new
UMImage
(
mContext
,
params
.
getString
(
"image"
)));
// 小程序消息封面图片
umMin
.
setTitle
(
params
.
getString
(
"title"
));
// 小程序消息title
umMin
.
setDescription
(
params
.
getString
(
"content"
));
// 小程序消息描述
umMin
.
setPath
(
params
.
getString
(
"path"
));
//小程序页面路径
umMin
.
setUserName
(
params
.
getString
(
"appId"
));
new
ShareAction
(
mContext
).
setPlatform
(
SHARE_MEDIA
.
WEIXIN
)
.
setCallback
(
new
UMShareListener
()
{
@Override
public
void
onStart
(
SHARE_MEDIA
share_media
)
{
}
@Override
public
void
onResult
(
SHARE_MEDIA
share_media
)
{
listener
.
onResult
(
true
,
""
,
null
);
}
@Override
public
void
onError
(
SHARE_MEDIA
share_media
,
Throwable
throwable
)
{
listener
.
onResult
(
false
,
throwable
.
getMessage
(),
throwable
);
}
@Override
public
void
onCancel
(
SHARE_MEDIA
share_media
)
{
Throwable
throwable
=
new
Throwable
(
"取消分享"
);
listener
.
onResult
(
false
,
"取消分享"
,
throwable
);
}
})
.
withMedia
(
umMin
)
.
share
();
}
public
static
void
shareImgWithBoard
(
final
Activity
mContext
,
final
ReadableMap
params
,
final
ShareListener
listener
)
{
ShareBoardConfig
boardConfig
=
new
ShareBoardConfig
();
...
...
@@ -145,7 +184,7 @@ public class Share {
String
imgUrl
=
params
.
getString
(
"imgUrl"
);
if
(
imgBase64
!=
null
)
{
if
(
imgBase64
!=
null
)
{
Bitmap
bitmap
=
null
;
try
{
byte
[]
bitmapArray
=
Base64
.
decode
(
imgBase64
,
Base64
.
DEFAULT
);
...
...
@@ -186,42 +225,42 @@ public class Share {
}).
open
(
boardConfig
);
}
public
static
void
shareImg
(
final
Activity
mContext
,
final
ReadableMap
params
,
final
ShareListener
listener
)
{
SHARE_MEDIA
share_media
=
params
.
getString
(
"platformType"
).
equals
(
"1"
)?
SHARE_MEDIA
.
WEIXIN
:
SHARE_MEDIA
.
WEIXIN_CIRCLE
;
public
static
void
shareImg
(
final
Activity
mContext
,
final
ReadableMap
params
,
final
ShareListener
listener
)
{
SHARE_MEDIA
share_media
=
params
.
getString
(
"platformType"
).
equals
(
"1"
)
?
SHARE_MEDIA
.
WEIXIN
:
SHARE_MEDIA
.
WEIXIN_CIRCLE
;
// UMImage image = new UMImage(mContext, new File(params.getString("imgPath")));
String
imgBase64
=
params
.
getString
(
"imgBase64"
);
Bitmap
bitmap
=
null
;
try
{
byte
[]
bitmapArray
=
Base64
.
decode
(
imgBase64
,
Base64
.
DEFAULT
);
bitmap
=
BitmapFactory
.
decodeByteArray
(
bitmapArray
,
0
,
bitmapArray
.
length
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
String
imgBase64
=
params
.
getString
(
"imgBase64"
);
Bitmap
bitmap
=
null
;
try
{
byte
[]
bitmapArray
=
Base64
.
decode
(
imgBase64
,
Base64
.
DEFAULT
);
bitmap
=
BitmapFactory
.
decodeByteArray
(
bitmapArray
,
0
,
bitmapArray
.
length
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
UMImage
image
=
new
UMImage
(
mContext
,
bitmap
);
new
ShareAction
(
mContext
).
setPlatform
(
share_media
)
.
setCallback
(
new
UMShareListener
()
{
@Override
public
void
onStart
(
SHARE_MEDIA
share_media
)
{
}
UMImage
image
=
new
UMImage
(
mContext
,
bitmap
);
new
ShareAction
(
mContext
).
setPlatform
(
share_media
)
.
setCallback
(
new
UMShareListener
()
{
@Override
public
void
onStart
(
SHARE_MEDIA
share_media
)
{
}
@Override
public
void
onResult
(
SHARE_MEDIA
share_media
)
{
listener
.
onResult
(
true
,
""
,
null
);
}
@Override
public
void
onError
(
SHARE_MEDIA
share_media
,
Throwable
throwable
)
{
listener
.
onResult
(
false
,
throwable
.
getMessage
(),
throwable
);
}
@Override
public
void
onCancel
(
SHARE_MEDIA
share_media
)
{
Throwable
throwable
=
new
Throwable
(
"取消分享"
);
listener
.
onResult
(
false
,
"取消分享"
,
throwable
);
}
}).
withText
(
"分享"
)
.
withMedia
(
image
)
.
share
();
}
@Override
public
void
onResult
(
SHARE_MEDIA
share_media
)
{
listener
.
onResult
(
true
,
""
,
null
);
}
@Override
public
void
onError
(
SHARE_MEDIA
share_media
,
Throwable
throwable
)
{
listener
.
onResult
(
false
,
throwable
.
getMessage
(),
throwable
);