微信分享 QQ分享(自帶)

微信分享

1、注冊第三方軟件 + (BOOL) registerApp:(NSString *) appidwithDescription:(NSString *) appdesc

2、使appDelegate成為代理 + (BOOL) handleOpenURL: (NSURL *) urldelegate:(id< WXApiDelegate >) delegate

a、參數url 微信啟動第三方應用時傳遞過來的url

b、參數delegate WXApiDelegate對象

3、發送消息給微信 + (BOOL) sendReq:(BaseReq *) req

a、函數調用后,會切換到微信的界面。第三方應用程序等待微信返回onResp。微信在異步處理完成后一定會調用onResp。支持以下類型 SendAuthReq、SendMessageToWXReq等。

b、BaseReq 基類 可以使用下面的三個子類

4、發送請求后等待微信響應,第一次交互。接收到微信傳來的數據后,系統會自動調用

- (void)onResp:(BaseResq *)resp? 可選方法

5、- (void)onResp:(BaseResq *)resp 顯示微信返回的信息

示例代碼:

AppDelegate.h兩個重要方法:

//如果第三方程序向微信發送了sendReq的請求,那么onResp會被回調。sendReq請求調用后,會切到微信終端程序界面

- (void)onResp:(id)resp{

// QQ的

if ([resp isKindOfClass:[QQBaseResp class]]) {

}

else if ([resp isKindOfClass:[SendAuthResp class]]) {

SendAuthResp *aresp = (SendAuthResp *)resp;

/*

ErrCode ERR_OK = 0(用戶同意)

ERR_AUTH_DENIED = -4(用戶拒絕授權)

ERR_USER_CANCEL = -2(用戶取消)

code? ? 用戶換取access_token的code,僅在ErrCode為0時有效

state? 第三方程序發送時用來標識其請求的唯一性的標志,由第三方程序調用sendReq時傳入,由微信終端回傳,state字符串長度不能超過1K

lang? ? 微信客戶端當前語言

country 微信用戶當前國家信息

*/

if (aresp.errCode== 0) {

weChatCode = aresp.code;

//? ? ? ? NSDictionary *dic = @{@"code":code};

[self getAccessToken];

}

}else if([resp isKindOfClass:[SendMessageToWXResp class]])

{

SendMessageToWXResp *rsp? = (SendMessageToWXResp*)resp;

NSString *strTitle = [NSString stringWithFormat:@"發送媒體消息結果"];

NSString *strMsg = [NSString stringWithFormat:@"errcode:%d", rsp.errCode];

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:strTitle message:strMsg delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];

[alert show];

}

//? ? else if ([resp isKindOfClass:[AddCardToWXCardPackageResp class]])

//? ? {

//? ? ? ? AddCardToWXCardPackageResp* temp = (AddCardToWXCardPackageResp*)resp;

//? ? ? ? NSMutableString* cardStr = [[NSMutableString alloc] init];

//? ? ? ? for (WXCardItem* cardItem in temp.cardAry) {

//? ? ? ? ? ? [cardStr appendString:[NSString stringWithFormat:@"cardid:%@ cardext:%@ cardstate:%u\n",cardItem.cardId,cardItem.extMsg,(unsigned int)cardItem.cardState]];

//? ? ? ? }

//? ? ? ? UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"add card resp" message:cardStr delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];

//? ? ? ? [alert show];

//? ? }

}

//onReq是微信終端向第三方程序發起請求,要求第三方程序響應。第三方程序響應完后必須調用sendRsp返回。在調用sendRsp返回時,會切回到微信終端程序界面

//授權后回調

-(void)onReq:(id)req{

// QQ的

if ([req isKindOfClass:[QQBaseReq class]]) {

}

else if([req isKindOfClass:[GetMessageFromWXReq class]])

{

//? ? ? ? GetMessageFromWXReq *temp = (GetMessageFromWXReq *)req;

// 微信請求App提供內容, 需要app提供內容后使用sendRsp返回

NSString *strTitle = [NSString stringWithFormat:@"微信請求App提供內容"];

NSString *strMsg = [NSString stringWithFormat:@"%@", AM_WXAPP_SECRET];

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:strTitle message:strMsg delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];

alert.tag = 1000;

[alert show];

}

else if([req isKindOfClass:[ShowMessageFromWXReq class]])

{

ShowMessageFromWXReq* temp = (ShowMessageFromWXReq*)req;

WXMediaMessage *msg = temp.message;

//顯示微信傳過來的內容

WXAppExtendObject *obj = msg.mediaObject;

NSString *strTitle = [NSString stringWithFormat:@"微信請求App顯示內容"];

NSString *strMsg = [NSString stringWithFormat:@"openID: %@, 標題:%@ \n內容:%@ \n附帶信息:%@ \n縮略圖:%lu bytes\n附加消息:%@\n", AM_WXAPP_SECRET, msg.title, msg.description, obj.extInfo, (unsigned long)msg.thumbData.length, msg.messageExt];

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:strTitle message:strMsg delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];

[alert show];

}

else if([req isKindOfClass:[LaunchFromWXReq class]])

{

LaunchFromWXReq *temp = (LaunchFromWXReq *)req;

WXMediaMessage *msg = temp.message;

//從微信啟動App

NSString *strTitle = [NSString stringWithFormat:@"從微信啟動"];

NSString *strMsg = [NSString stringWithFormat:@"%@, messageExt:%@", AM_WXAPP_SECRET, msg.messageExt];

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:strTitle message:strMsg delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];

[alert show];

}

}

#import "WXApi.h"

// 構造微信分享內容

WXMediaMessage *message = [WXMediaMessage message];

message.title = @“your title";

message.description = @“your description";

[message setThumbImage:[UIImage imageNamed:@"article_1@2x.png"]];

WXWebpageObject *ext = [WXWebpageObject object];

ext.webpageUrl = @"http://t.cn/Rxakj";

message.mediaObject = ext;

message.mediaTagName = @"WECHAT_TAG_JUMP_SHOWRANK";

SendMessageToWXReq* req = [[SendMessageToWXReq alloc] init];

req.bText = NO;

req.message = message;

// 分享微信好友

req.scene = WXSceneSession;

// 分享微信朋友圈

req.scene = WXSceneTimeline;

[WXApi sendReq:req];

QQ分享1.在工程中添加QQ互聯IOS SDK2.生成分享的QQApiObject3.生成sendReq發送消息4.通過判斷SendReq方法的返回值,查看是否成功調用定向分享5.查看分享出去的消息#import//構造QQ分享內容

NSString *utf8String = @"http://t.cn/Rxakj";

NSString *title = @“your title";

NSString *description = @“your description";

NSString *imgPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"article_1@2x.png"];

NSData *imgData = [NSData dataWithContentsOfFile:imgPath];

QQApiNewsObject *newsObj = [QQApiNewsObject objectWithURL:[NSURL URLWithString:utf8String] title:title description:description previewImageData:imgData];

SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:newsObj];

//將內容分享到qq

[QQApiInterface sendReq:req];

//將內容分享到qzone

[QQApiInterface SendReqToQZone:req];

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,577評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,486評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,852評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,600評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,944評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,108評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,652評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,385評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,616評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,798評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,205評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,537評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,334評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,570評論 2 379

推薦閱讀更多精彩內容

  • iOS支付 iOS支付分為兩類,第三方支付和應用內支付(內購)。 第三方支付包括:支付寶支付、微信支付、銀聯支付、...
    請輸入賬號名閱讀 6,253評論 3 22
  • iOS支付 iOS支付分為兩類,第三方支付和應用內支付(內購)。 第三方支付包括:支付寶支付、微信支付、銀聯支付、...
    羊駝先生丶閱讀 917評論 0 0
  • 在我們應用開發中我們經常在自己的項目中使用到支付,下面我們來談談iOS這塊的支付;iOS支付主要分為兩類,第三方支...
    Hither閱讀 8,322評論 9 42
  • 2017年4月5日 周三 天氣陰 今天的關鍵詞,老師。是從看的三部電影《放牛班的春天》《死亡詩社》《國王的演講》獲...
    crysatljingjing閱讀 206評論 0 0
  • 邢禎:做代理,送客戶,全國僅此一家 原創 2017-05-18 邢禎 邢禎 親愛的小伙伴,很高興你看到這邊文章。看...
    新茶商之旅閱讀 197評論 0 0