【微信小程序】分享

在此說明:這個文章時直接 copy 別人的,我沒有做過測試

實現時依賴的sdk版本
'Weibo', '3.2.4'
spec.dependency 'TencentOpenApiSDK', '~> 3.3.6'3.3.5開始qq小程序)
spec.dependency 'WechatOpenSDK', '1.8.5'

微信分享,分享小程序

//微信註冊
[WXApi registerApp:string];

//  檢測是否安裝微信
if (![WXApi isWXAppInstalled] || ![WXApi isWXAppSupportApi]) {
    return;
}
SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
req.bText = NO;

if (shareType == ShareToWeChat) {
    req.scene = WXSceneSession;//對話列表
} else {
    req.scene = WXSceneTimeline;    //  朋友圈
}

WXMediaMessage *message = [WXMediaMessage message];
WXWebpageObject *page = [WXWebpageObject object];
page.webpageUrl = url;
// 設置縮略圖
message.thumbData = shareImageData;
message.mediaObject = page;
message.title =@"title";
message.description = @"描述";
//分享到小程序
if(req.scene == WXSceneSession){
	WXMiniProgramObject *wxMiniObject = [WXMiniProgramObject object];
	wxMiniObject.webpageUrl =url;
	wxMiniObject.userName = @"xxx";
	wxMiniObject.path = @"xx"; 
	wxMiniObject.hdImageData = data;
	#ifdef DEBUG
	wxMiniObject.miniProgramType = WXMiniProgramTypeTest;
	#endif
	message.mediaObject = wxMiniObject;
}
req.message = message;
[WXApi sendReq:req];

qq分享,分享qq小程序

 //qq註冊
 [[TencentOAuth alloc] initWithAppId:string andDelegate:nil];

if (![QQApiInterface isQQInstalled]) {
	return;
}
QQApiObject *  shareObj =  [QQApiVideoObject objectWithURL:[NSURL URLWithString:link] title:shareTitle description:@"zzz"  previewImageData:imageData];
SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:shareObj];
[QQApiInterface sendReq:req];


//小程序 3.3.5以及之後的sdk纔行
QQApiVideoObject *videoObj = [QQApiVideoObject objectWithURL:[NSURL URLWithString:link] title:shareTitle description:@"aa"previewImageData:imageData;
videoObj.cflag |= kQQAPICtrlFlagQQShareEnableMiniProgram;
if (shareType == ShareToQzone) {
    //如果是發到空間還需要打開下面一句
    videoObj.cflag |= kQQAPICtrlFlagQZoneShareOnStart;
}
//小程序消息對象
QQApiMiniProgramObject *miniObj = [QQApiMiniProgramObject new];
miniObj.qqApiObject = videoObj;
miniObj.miniAppID = miniObj.miniAppID;
miniObj.webpageUrl = link;
if ([str containsString:@"?"]) { //不轉有的參數傳不到小程序,這裏需要看看
    NSArray<NSString *> *ary = [str componentsSeparatedByString:@"?"];
    str = [NSString stringWithFormat:@"%@?%@",ary.firstObject,[ary.lastObject URLEncodedString]];
}
miniObj.miniPath = str; 
#ifdef DEBUG
miniObj.miniprogramType = MiniProgramType_Test;
#endif
req = [SendMessageToQQReq reqWithMiniContent:miniObj];
QQApiSendResultCode sent = [QQApiInterface sendReq:req];

分享到微博

//微博註冊
[WeiboSDK registerApp:string];
//沒有安裝微博
if (![WeiboSDK isWeiboAppInstalled]) {
   return;
}
WBWebpageObject *webPage = [WBWebpageObject object];
webPage.title =@"dd";
webPage.webpageUrl = url;
webPage.description = @"aaaa";

webPage.objectID = webPage.webpageUrl;

webPage.thumbnailData =shareImageData
message.mediaObject = webPage;
message.text =@"ss";
WBSendMessageToWeiboRequest *request = [WBSendMessageToWeiboRequest requestWithMessage:message];
request.userInfo = @{@"SendMessageFrom" : @"SendMessageToWeiboViewController"};
[WeiboSDK sendRequest:request];

AppDelegate實現
WeiboSDKDelegate(微博代理),
WXApiDelegate(微信代理),
QQApiInterfaceDelegate(qq代理)
三個代理可以分別處理分享後來自微博,微信,qq終端程序的事件消息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章