獨立集成QQ和微信分享的回調沖突問題

一、前言:微信和QQ的回調方法名相同

-(void) onReq:(BaseReq*)req

- (void)onResp:(QQBaseResp *)resp

所以在AppDelegate中會沖突。

二、正文:

1、原本我是這樣寫的:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

?if ([string hasPrefix:kWXKey]){

? ? ?return [WXApi handleOpenURL:url delegate:self];

}else if ([string hasPrefix:kQQkey"]){?

? ? ?return [QQApiInterface handleOpenURL:url delegate:self];

}

但是,他們的回調都是相同的方法名:

1、微信回調:

/*! @brief 發送一個sendReq后,收到微信的回應 ?*

* 收到一個來自微信的處理結果。調用一次sendReq后會收到onResp。

* 可能收到的處理結果有SendMessageToWXResp、SendAuthResp等。

* @param resp具體的回應內容,是自動釋放的

*/

-(void) onResp:(BaseResp*)resp;

2、QQ回調:

/**?處理來至QQ的請求 */

- (void)onReq:(QQBaseReq *)req;

他們在AppDelegate里名字是沖突的,所以,不能以AppDelegate為代理處理,

最后,我為微信和QQ分享,單獨寫一個分享Tool,并把相應的代理方法寫在Tool中.

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

if ([string hasPrefix:kWXKey]){

? ? ?WeixinSDKTool *wx = [[WeixinSDKTool alloc]init];

? ? ?return [WXApi handleOpenURL:url delegate:wx];

} else if ([string hasPrefix:kQQKey]){

? ? ? QQSDKTool * qq = [[QQSDKTool alloc]init];

? ? ? return [QQApiInterface handleOpenURL:url delegate:qq];

}


附:

1、微信Tool.h

#import <Foundation/Foundation.h>

#import "WXApi.h"

#import "WXApiObject.h"

@interface WeixinSDKTool : NSObject<WXApiDelegate>

typedef NS_ENUM(NSInteger, WXSceneType) {

WXSceneTypeSession? = 0,? ? ? ? /**< 聊天界面? ? */

WXSceneTypeTimeline = 1,? ? ? ? /**< 朋友圈? ? ? */

WXSceneTypeFavorite = 2,? ? ? ? /**< 收藏? ? ? */

};

+ (void) sendImageContent:(UIImage *)image scene:(WXSceneType)scene;

@end

2、QQTool.h

#import<UIKit/UIKit.h>

#import<Foundation/Foundation.h>

#import<TencentOpenAPI/QQApi.h>

#import<TencentOpenAPI/QQApiInterface.h>

@interface QQSDKTool : NSObject<QQApiInterfaceDelegate>

+ (void)shareToWeiboWithImage:(UIImage *)image title:(NSString *)title description:(NSString *)description;

@end

nice~

- 如果有什么疑問,可以在評論區一起討論;

- 如果有什么不正確的地方,歡迎指導!

> 注:本文首發于 [iHTCboy's blog](http://ihtcboy.com),如若轉載,請注明來源。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 背景 項目使用到了一些第三方平臺的登錄、分享、支付功能,包括了微信、微博、QQ平臺登錄分享和支付寶、微信平臺的支付...
    軟件iOS開發閱讀 521評論 0 1
  • 實現支付寶支付的準備工作: 1.向支付寶簽約,成為支付寶的商戶 簽約完成后,支付寶會提供一些必要的數據給我們 商戶...
    Anson楊春安閱讀 8,263評論 0 6
  • iOS支付 iOS支付分為兩類,第三方支付和應用內支付(內購)。 第三方支付包括:支付寶支付、微信支付、銀聯支付、...
    請輸入賬號名閱讀 6,317評論 3 22
  • iOS支付 iOS支付分為兩類,第三方支付和應用內支付(內購)。 第三方支付包括:支付寶支付、微信支付、銀聯支付、...
    羊駝先生丶閱讀 931評論 0 0
  • 有時候我們總是擔心,擔心自己不夠優秀,擔心自己做的差,擔心自己的成績不能承受的了別人的說三道四。如果有這樣感受的人...
    拿個橘子榨橙汁閱讀 727評論 0 0