1.下載官方iOS sdk:地址:相關文件
2. 將iOS SDK中的TencentOpenAPI.framework和TencentOpenApi_IOS_Bundle.bundle檔案拷貝到應用開發的目錄下
3. 新增SDK依賴的系統庫檔案。分別是”Security.framework”, “libiconv.dylib”,“SystemConfiguration.framework”,“CoreGraphics.Framework”、“libsqlite3.dylib”、“CoreTelephony.framework”、“libstdc++.dylib”、“libz.dylib”。
4. 修改必要的工程配置屬性。
在工程配置中的“Build Settings”一欄中找到“Linking”配置區,給“Other Linker Flags”配置項新增屬性值“-fobjc-arc”。
5.在XCode中,選擇你的工程設定項,選中“TARGETS”一欄,在“info”標籤欄的“URL type”新增一條新的“URL scheme”,新的scheme = tencent + appid。如果您使用的是XCode3或者更低的版本,則需要在plist檔案中新增。Demo中我們註冊的appid是222222。如下圖
另外在Xcode 6.0建立工程時,預設可能沒有單獨設定Bundle display name屬性值。但是因為SDK需要用到Bundle display name的值,所以務必請檢查確保這個屬性存在,如果沒有請新增上。
6.appdelegate中新增相應的程式碼:
標頭檔案#import <TencentOpenAPI/TencentOAuth.h>
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [TencentOAuth HandleOpenURL:url]; } - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [TencentOAuth HandleOpenURL:url]; }
7.呼叫:
#import <TencentOpenAPI/TencentOAuth.h>
#import <TencentOpenAPI/TencentApiInterface.h>
#import <TencentOpenAPI/TencentMessageObject.h>
#import "TencentOpenAPI/QQApiInterface.h"
#import <TencentOpenAPI/TencentOAuthObject.h>
TencentSessionDelegate
介面呼叫文件:文件地址
關鍵程式碼如下:
- (void)handleSendResult:(QQApiSendResultCode)sendResult { switch (sendResult) { case EQQAPIAPPNOTREGISTED: { UIAlertView *msgbox = [[UIAlertView alloc] initWithTitle:@"Error" message:@"App未註冊" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil]; [msgbox show]; break; } case EQQAPIMESSAGECONTENTINVALID: case EQQAPIMESSAGECONTENTNULL: case EQQAPIMESSAGETYPEINVALID: { UIAlertView *msgbox = [[UIAlertView alloc] initWithTitle:@"Error" message:@"傳送引數錯誤" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil]; [msgbox show]; break; } case EQQAPIQQNOTINSTALLED: { UIAlertView *msgbox = [[UIAlertView alloc] initWithTitle:@"Error" message:@"未安裝手Q" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil]; [msgbox show]; break; } case EQQAPIQQNOTSUPPORTAPI: { UIAlertView *msgbox = [[UIAlertView alloc] initWithTitle:@"Error" message:@"API介面不支援" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil]; [msgbox show]; break; } case EQQAPISENDFAILD: { UIAlertView *msgbox = [[UIAlertView alloc] initWithTitle:@"Error" message:@"傳送失敗" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil]; [msgbox show]; break; } case EQQAPIVERSIONNEEDUPDATE: { UIAlertView *msgbox = [[UIAlertView alloc] initWithTitle:@"Error" message:@"當前QQ版本太低,需要更新" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil]; [msgbox show]; break; } default: { break; } } }