微信分享小程序
在React Native开发过程中,常需要使用到原生IOS的一些方法进行扩展。
- 在react-native 中的 UMShareModule.m文件中添加以下扩展
- 下面调用友盟分享例子
/**
分享到微信小程序
@param shareText 分享文本
@param icon 分享的icon图标
@param link 分享的链接
@param title 分享的标题
@param platform 平台id 详情见官方平台id文档
@return completion 结束回调
*/
RCT_EXPORT_METHOD(shareToMinProgram:(NSString *)shareText icon:(NSString *)icon link:(NSString *)link title:(NSString *)title platform:(NSInteger)platformType completion:(RCTResponseSenderBlock)completion)
{
//创建分享消息对象
UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
UMShareMiniProgramObject *shareObject = [UMShareMiniProgramObject shareObjectWithTitle:title descr:shareText thumImage:icon];
shareObject.webpageUrl = link;
shareObject.userName = @"gh_367905c462a0"; // 当前使用小程序的原始id 需修改为配置文件中
shareObject.path = link;
messageObject.shareObject = shareObject;
//调用分享接口
[[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:nil completion:^(id data, NSError *error) {
if (error) {
RCTLog(@"************Share fail with error %@*********",error);
completion(@[@1, error]);
}else{
if ([data isKindOfClass:[UMSocialShareResponse class]]) {
UMSocialShareResponse *resp = data;
//分享结果消息
RCTLog(@"response message is %@",resp.message);
completion(@[@(0), resp.message]);
//第三方原始返回的数据
RCTLog(@"response originalResponse data is %@",resp.originalResponse);
}else{
RCTLog(@"response data is %@",data);
completion(@[@0, @"share success"]);
}
}
}];
}
- 在对应的分享js页面引用 并且调用扩展方法
var UMShareModule = NativeModules.UMShareModule;
UMShareModule.shareToMinProgram("sss","ss","url","title",1,(code,message) =>{
// this.setState({result:message});
Alert.alert("这是",message);
});