Commit ecb4c7f4 authored by wind.wang's avatar wind.wang

增加分享小程序

parent 69a49fc0
......@@ -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 androidx.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();
}
}
......@@ -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;
}
}
......@@ -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);
}
@Override
public void onCancel(SHARE_MEDIA share_media) {
Throwable throwable = new Throwable("取消分享");
listener.onResult(false, "取消分享", throwable);
}
}).withText("分享")
.withMedia(image)
.share();
}
}
......@@ -79,6 +79,16 @@ class Social {
}
})
}
launchMiniProgram(args) {
ReactSocial.launchMiniProgram(args)
}
shareToMiniProgram(args, callback) {
ReactShare.shareToMiniProgram(args, (result) => {
if (callback) {
callback(result)
}
})
}
shareImgWithBoard(args, callback) {
ReactShare.shareImgWithBoard(args, (result) => {
if (callback) {
......
......@@ -31,6 +31,7 @@ RCT_EXPORT_METHOD(launchMiniProgram:(NSDictionary*)params)
}
@end
@implementation RNShareNativeBridge
RCT_EXPORT_MODULE(ReactShare)
......@@ -61,6 +62,13 @@ RCT_EXPORT_METHOD(shareImgWithBoard:(NSDictionary*)params callback:(RCTResponseS
}];
}
RCT_EXPORT_METHOD(shareToMiniProgram:(NSDictionary*)params callback:(RCTResponseSenderBlock)callback)
{
[[RNShareConfig shareInstance] shareToMiniProgram:params callback:^(RNShareResponse *responseDO) {
callback(@[[responseDO serialization]]);
}];
}
@end
......
......@@ -37,6 +37,8 @@ typedef void (^RNShareResponseCallback)(RNShareResponse *responseDO);
- (void)shareHandler:(NSDictionary *)data callback:(RNShareResponseCallback)callback;
- (void)shareImgWithBoardHandler:(NSDictionary *)data callback:(RNShareResponseCallback)callback;
- (void)shareImgHandler:(NSDictionary *)data callback:(RNShareResponseCallback)callback;
- (void)shareToMiniProgram:(NSDictionary *)data callback:(RNShareResponseCallback)callback;
- (void)shareHandler:(id)data;
- (void)initWechat:(NSString*)appKey appSecret:(NSString*)appSecret redirect:(NSString*)redirect;
......
......@@ -204,6 +204,33 @@
}];
}
- (void) shareToMiniProgram:(NSDictionary *)data callback:(RNShareResponseCallback)callback;{
if (callback){
_callback = [callback copy];
}
__weak typeof(self) weakSelf = self;
RNShareParam *shareParam = [self formatParams:data];
[self setShareParams:shareParam];
UMSocialMessageObject *messageObject =[UMSocialMessageObject messageObject];
UMShareMiniProgramObject *shareObject =[UMShareMiniProgramObject shareObjectWithTitle:shareParam.title descr:shareParam.content thumImage:shareParam.image];
shareObject.webpageUrl =@"https://m.hisense.com";
shareObject.userName = data[@"appId"];
shareObject.path = data[@"path"];
messageObject.shareObject = shareObject;
shareObject.hdImageData =[NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"logo" ofType:@"png"]];
if (data[@"miniProgramType"]) {
shareObject.miniProgramType = [data[@"miniProgramType"] intValue]; //拉起小程序的类型
} else {
shareObject.miniProgramType =UShareWXMiniProgramTypeRelease;// 可选体验版和开发板
}
//调用分享接口
[[UMSocialManager defaultManager] shareToPlatform:UMSocialPlatformType_WechatSession messageObject:messageObject currentViewController:[RNShareConfig getRootViewController] completion:^(id result,NSError *error){
[weakSelf shareCallback:result error:error];
}];
}
- (void)shareCallback:(id)result error:(NSError *)error{
if (!_callback){
......
......@@ -18,5 +18,5 @@
"start": "react-native start",
"test": "jest"
},
"version": "1.3.9"
"version": "1.4.0"
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment