準備工作
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;
}
95CFBF39-2955-431B-B19E-2FD346E8FA05.png
添加重寫
-(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
2D868594-8E34-4FE5-89AD-7FA9B63602A6.png
2 . 分享一個鏈接
static NSString *kLinkURL = @"http://www.lxweimin.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];