第三方分享之微信

由于微信的普及,微信是一種最常用的第三方分享工具。

1. 微信可以分享多種類型分享類型

微信第三方分享可以分享的類型有文本,圖片,網(wǎng)頁(yè),應(yīng)用,音頻,視頻等。對(duì)應(yīng)的數(shù)據(jù)類型如下:

WXAppExtendObject? ? ? ? ? ??多媒體消息中包含的App擴(kuò)展數(shù)據(jù)對(duì)象

WXEmoticonObject? ? ? ? ? ? ? ??多媒體消息中包含的表情數(shù)據(jù)對(duì)象

WXFileObject? ? ? ? ? ? ? ? ? ? ? ? ?多媒體消息中包含的文件數(shù)據(jù)對(duì)象

WXImageObject? ? ? ? ? ? ? ? ? ? ?多媒體消息中包含的圖片數(shù)據(jù)對(duì)象

WXMediaMessage? ? ? ? ? ? ? ? ?多媒體消息結(jié)構(gòu)體

WXMusicObject? ? ? ? ? ? ? ? ? ? ?多媒體消息中包含的音樂(lè)數(shù)據(jù)對(duì)象

WXVideoObject? ? ? ? ? ? ? ? ? ? ??多媒體消息中包含的視頻數(shù)據(jù)對(duì)象

WXWebpageObject? ? ? ? ? ? ? ? ?多媒體消息中包含的網(wǎng)頁(yè)數(shù)據(jù)對(duì)象

2. 微信分享消息體構(gòu)建:

SendMessageToWXReq?

第三方程序發(fā)送消息至微信終端程序的接口

第三方程序向微信發(fā)送信息需要調(diào)用此接口,并傳入具體請(qǐng)求類型作為參數(shù)。請(qǐng)求的信息內(nèi)容包括文本消息和多媒體消息, 分別對(duì)應(yīng)于text和message成員。調(diào)用該方法后,微信處理完信息會(huì)向第三方程序發(fā)送一個(gè)處理結(jié)果。

發(fā)送文本類型示例

SendMessageToWXReq* req = [[[SendMessageToWXReqalloc]init]autorelease];

req.text=@"XXXXXX";

req.bText=YES;

req.scene=_scene;

發(fā)送圖片類型示例:

WXMediaMessage*message = [WXMediaMessage message];

[message ?setThumbImage:[UIImageimageNamed:@"res5thumb.png"]];

WXImageObject *ext = [WXImageObjectobject];

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"res5thumb" ofType:@"png"];

ext.imageData = [NSData dataWithContentsOfFile:filePath];

UIImage * image = [UIImage imageWithData:ext.imageData];

ext.imageData=UIImagePNGRepresentation(image);

message.mediaObject= ext;

SendMessageToWXReq* req = [[[SendMessageToWXReqalloc]init]autorelease];

req.bText=NO;

req.message= message;

req.scene=_scene;

[WXApisendReq:req];

app指定打開: 在微信中直接打開app。

WXMediaMessage*message = [WXMediaMessagemessage];

message.title=@"App消息";

message.description=@"這種消息只有App自己才能理解,由App指定打開方式!";

[messagesetThumbImage:[UIImageimageNamed:@"res2.jpg"]];

WXAppExtendObject*ext = [WXAppExtendObjectobject];

ext.extInfo=@"extend info";

ext.url=@"http://weixin.qq.com";


Byte* pBuffer = (Byte*)malloc(BUFFER_SIZE);

memset(pBuffer,0,BUFFER_SIZE);

NSData* data = [NSDatadataWithBytes:pBufferlength:BUFFER_SIZE];

free(pBuffer);

ext.fileData= data; ? //如果此參數(shù)不設(shè)置,app跳轉(zhuǎn)無(wú)效,直接跳到url


message.mediaObject= ext;

GetMessageFromWXResp* resp = [[[GetMessageFromWXRespalloc]init]autorelease];

resp.message= message;

resp.bText=NO;

[WXApisendResp:resp];

3. ?與微信終端交互的具體請(qǐng)求與回應(yīng)

與微信交互需要實(shí)現(xiàn)WXApiDelegate協(xié)議的兩個(gè)方法

-(void) onReq:(BaseReq*)reqonReq是微信終端向第三方程序發(fā)起請(qǐng)求,要求第三方程序響應(yīng)。第三方程序響應(yīng)完后必須調(diào)用sendRsp返回。在調(diào)用sendRsp返回時(shí),會(huì)切回到微信終端程序界面。

-(void) onResp:(BaseResp*)resp如果第三方程序向微信發(fā)送了sendReq的請(qǐng)求,那么onResp會(huì)被回調(diào)。sendReq請(qǐng)求調(diào)用后,會(huì)切到微信終端程序界面。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容