iOS QQ分享-官方集成

好脾氣的程序員也會一邊看騰訊的SDK一邊罵娘! ---- 一哥哥php

 

作完騰訊官方的集成才感覺到來自鵝廠的一萬點傷害,相比之下私覺得沒有比環信SDK更有愛的了,有事沒事都能騷擾在線客服,吐槽結束,下面介紹如何集成QQ的官方分享c++

 

一.準備工做

1,在騰訊開放平臺申請分享須要使用的APPID (點擊我進入騰訊開發平臺程序員

2,下載官方最新版本的SDK(進入下載頁面sql

二.環境配置

1,添加SDK依賴的系統庫文件。分別是」Security.framework」, 「libiconv.dylib」,「SystemConfiguration.framework」,「CoreGraphics.Framework」、「libsqlite3.dylib」、「CoreTelephony.framework」、「libstdc++.dylib」、「libz.dylib」。app

2,添加URL schemes,注意QQ的URL schemes爲 tencent + 你的appid測試

3,添加白名單方法點此查看url

三.代碼編寫

1,AppDelegate.h中 導入頭文件#import <TencentOpenAPI/TencentOAuth.h>spa

2,遵循<QQApiInterfaceDelegate>協議3d

3,在didFinishLaunchingWithOptions方法中註冊:orm

TencentOAuth *OAuth = [[TencentOAuth alloc] initWithAppId:@"你的appid" andDelegate:nil];

4,重寫AppDelegate handleOpenURLopenURL方法 

由於你不必定只集成QQ分享,因此在這兩個方法裏,須要作判斷,以下圖:

其中TENCENT_CONNECT_APP_KEY就是你的appid ,源碼爲

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options {

    if ([url.absoluteString hasPrefix:[NSString stringWithFormat:@"tencent%@",TENCENT_CONNECT_APP_KEY]]) {

        [QQApiInterface handleOpenURL:url delegate:self];

        return [TencentOAuth HandleOpenURL:url];

    }return YES;

}

-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{

    if ([url.absoluteString hasPrefix:[NSString stringWithFormat:@"tencent%@",TENCENT_CONNECT_APP_KEY]]) {

        [QQApiInterface handleOpenURL:url delegate:self];

        return [TencentOAuth HandleOpenURL:url];

    }

    return YES;

}

5,進行分享:

代碼以下:

NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];

    NSURL *preimageUrl = [NSURL URLWithString:@"http://www.sizzee.com/index.php/catalog/product/view/id/55730/s/10196171/?SID=au0lhpg54f11nenmrjvhsh0rq6?uk=Y3VzdG9tZXJfaWQ9Mjc0fHByb2R1Y3RfaWQ9NTU3MzA"];

    QQApiNewsObject* img = [QQApiNewsObject objectWithURL:url title:@"測試分享" description:[NSString stringWithFormat:@"分享內容------新聞URL對象分享 ------test"] previewImageURL:preimageUrl];

    

    //請求幫助類,分享的全部基礎對象,都要封裝成這種請求對象。

    SendMessageToQQReq* req = [SendMessageToQQReq reqWithContent:img];

    QQApiSendResultCode sent = [QQApiInterface sendReq:req];

    NSLog(@"QQApiSendResultCode %d",sent);

其中[QQApiInterface sendReq:req] 裏的sendReq爲發送到QQ好友列表,SendReqToQZone爲發送到QQ空間,詳細的方式能夠點擊QQApiInterface進行查看

至此,QQ分享就完成了,如下爲親身實遇的幾個bug:

1,QQApiSendResultCode 2 控制檯打印出這個錯誤說明沒有配置白名單

2,QQApiSendResultCode -2 這個錯誤是最值得罵孃的,固然捱罵的是鵝廠,我由於這個錯誤整整修了五天,最後排查出的結果居然是SDK錯了,多試試幾個版本的SDK就行了,坑爹呢?

老規矩,有問題下方留言或者評論,必定及時和你們探討,歡迎歡迎🙏

相關文章
相關標籤/搜索