准备工作
a. 添加微信 SDK 去官网下载自己根据步骤一步一步配置
https://open.weixin.qq.com/cgi-bin/index?t=home/index&lang=zh_CN
b. pod 'WechatOpenSDK'
建议使用 pod 原因你懂的
pch 文件中添加
#import <WXApi.h>
APPDelegate.m 文件中
首先遵守 <WXApiDelegate>
然后在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
添加 APPID 是你在微信平台注册的程序里的
[WXApi registerApp:appId enableMTA:false];
return YES;
}
添加重写
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [WXApi handleOpenURL:url delegate:self];
}
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
return [WXApi handleOpenURL:url delegate:self];
}
-(void)onReq:(BaseReq *)req {
}
// 从微信分享过后点击返回应用的时候调用
- (void)onResp:(BaseResp *)resp {
//把返回的类型转换成与发送时相对于的返回类型,这里为SendMessageToWXResp
SendMessageToWXResp *sendResp = (SendMessageToWXResp *)resp;
//使用UIAlertView 显示回调信息
NSString *str = [NSString stringWithFormat:@"%d",sendResp.errCode];
UIAlertView *alertview = [[UIAlertView alloc] initWithTitle:@"回调信息" message:str delegate:self cancelButtonTitle:@"确认" otherButtonTitles:nil, nil];
[alertview show];
/* WXSuccess = 0, /**< 成功 */
WXErrCodeCommon = -1, /**< 普通错误类型 */
WXErrCodeUserCancel = -2, /**< 用户点击取消并返回 */
WXErrCodeSentFail = -3, /**< 发送失败 */
WXErrCodeAuthDeny = -4, /**< 授权失败 */
WXErrCodeUnsupport = -5, /**< 微信不支持 */
*/
}
设置从微信返回 你的 APP
2 . 分享一个链接
static NSString *kLinkURL = @"http://www.jianshu.com/u/c693e77d617c";
static NSString *kLinkTitle = @"我简书的主页";
static NSString *kLinkDescription = @"里面是一些自己总结的小知识点";
SendMessageToWXReq *req1 = [[SendMessageToWXReq alloc]init];
// 是否是文档
req1.bText = NO;
// WXSceneSession = 0, /**< 聊天界面 */
// WXSceneTimeline = 1, /**< 朋友圈 */
// WXSceneFavorite = 2,
req1.scene = WXSceneSession;
//创建分享内容对象
WXMediaMessage *urlMessage = [WXMediaMessage message];
urlMessage.title = kLinkTitle;//分享标题
urlMessage.description = kLinkDescription;//分享描述
[urlMessage setThumbImage:[UIImage imageNamed:@"XXshar"]];//分享图片,使用SDK的setThumbImage方法可压缩图片大小
//创建多媒体对象
WXWebpageObject *webObj = [WXWebpageObject object];
webObj.webpageUrl = kLinkURL;//分享链接
//完成发送对象实例
urlMessage.mediaObject = webObj;
req1.message = urlMessage;
//发送分享信息
[WXApi sendReq:req1];
分享音乐
SendMessageToWXReq *req1 = [[SendMessageToWXReq alloc]init];
// 是否是文档
req1.bText = NO;
// WXSceneSession = 0, /**< 聊天界面 */
// WXSceneTimeline = 1, /**< 朋友圈 */
// WXSceneFavorite = 2,
req1.scene = WXSceneSession;
//创建分享内容对象
WXMediaMessage *urlMessage = [WXMediaMessage message];
urlMessage.title = @"分享一首歌";//分享标题
urlMessage.description = @"一首小歌,放松一下";//分享描述
[urlMessage setThumbImage:[UIImage imageNamed:@"XXshar"]];//分享图片,使用SDK的setThumbImage方法可压缩图片大小
//创建多媒体对象
static NSString *kLinkURL = @"http://bd.kuwo.cn/yinyue/718535?from=baidu";
WXMusicObject *music = [WXMusicObject object];
music.musicUrl = kLinkURL;//分享链接
//完成发送对象实例
urlMessage.mediaObject = music;
req1.message = urlMessage;
//发送分享信息
[WXApi sendReq:req1];
分享视频
SendMessageToWXReq *req1 = [[SendMessageToWXReq alloc]init];
// 是否是文档
req1.bText = NO;
// WXSceneSession = 0, /**< 聊天界面 */
// WXSceneTimeline = 1, /**< 朋友圈 */
// WXSceneFavorite = 2,
req1.scene = 0;
//创建分享内容对象
WXMediaMessage *urlMessage = [WXMediaMessage message];
urlMessage.title = @"分享视频";//分享标题
urlMessage.description = @"小视频";//分享描述
[urlMessage setThumbImage:[UIImage imageNamed:@"XXshar"]];//分享图片,使用SDK的setThumbImage方法可压缩图片大小
//创建多媒体对象
static NSString *kLinkURL = @"http://baidu.wasu.cn/kan/a9OrA?fr=v.baidu.com/browse";
WXVideoObject *video = [WXVideoObject object];
video.videoUrl = kLinkURL;//分享链接
//完成发送对象实例
urlMessage.mediaObject = video;
req1.message = urlMessage;
//发送分享信息
[WXApi sendReq:req1];
分享图片
WXMediaMessage *message = [WXMediaMessage message];
// 设置消息缩略图的方法
[message setThumbImage:[UIImage imageNamed:@"图片.png"]];
// 多媒体消息中包含的图片数据对象
WXImageObject *imageObject = [WXImageObject object];
UIImage *image = [UIImage imageNamed:@"要分享的图片名"];
// 图片真实数据内容
NSData *data = UIImagePNGRepresentation(image);
imageObject.imageData = data;
// 多媒体数据对象,可以为WXImageObject,WXMusicObject,WXVideoObject,WXWebpageObject等。
message.mediaObject = imageObject;
SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
req.bText = NO;
req.message = message;
req.scene = WXSceneTimeline;// 分享到朋友圈
[WXApi sendReq:req];