qq iOS環境配置及呼叫

有稜角的圓發表於2016-06-12

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;
        }
    }
}

 

相關文章