友盟分享--集成QQ和微信

隨着社交工具的應用範圍愈來愈廣,分享一些內容的功能也開始要求實現了。數組

用得比較多的第三方,好比說友盟,好比說Share等等...微信

前幾天剛用友盟寫了集成QQ和微信客戶端的功能,以爲有必要分享一下。app

在這以前,你須要有一個友盟的appkey...(木有的可去註冊),並下載你所要的SDK;工具

  #import "UMSocial.h"post

  //設置友盟分享社會化組件appkey
    [UMSocialData setAppKey:UM_appkey]; url

先說集成QQ的吧:spa

首先,在UMSocial_Sdk_Extra_Frameworks目錄下的,添加TencentOpenAPI文件夾到工程;code

而後,根據友盟的文檔,依次添加必要的framework;ci

第三步,在Xcode工程中,點擊工程名-->info-->URL Types  添加一個元素,並設置URL Schemes 將appid(沒有appid的去騰訊開放平臺申請)轉化爲十六進制填進去;文檔

格式爲:QQ+appid的十六進制-------(單獨使用QQ受權,格式爲:tencent+appid);

第四步:在appdelegate中,導入頭文件,並打開集成QQ開關

  #import "UMSocialQQHandler.h"

  //設置分享到QQ應用id和分享url連接
    [UMSocialQQHandler setQQWithAppId:QQ_appid appKey:QQ_appkey url:@"http://www.umeng.com/social"];

第五步:實現系統回調的方法:

#pragma mark 系統回調方法
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
    return [UMSocialSnsService handleOpenURL:url];
}
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    return [UMSocialSnsService handleOpenURL:url];
}

最後,點擊分享按鈕的時候,就能夠調用方法了...

[UMSocialSnsService presentSnsIconSheetView:self appKey:UM_appkey shareText:text shareImage:nil shareToSnsNames:@[UMShareToQQ,UMShareToQzone,UMShareToTencent,UMShareToSina] delegate:self];

 

集成微信:

首先,UMSocial_Sdk_Extra_Frameworks目錄下,添加Wechat文件夾到工程;

而後,和集成QQ第三步同樣,再添加一個元素,設置URL Schemes  將微信appid(沒有的去微信開放平臺註冊)填進去;

第三步,一樣是導入頭文件,打開開關;

  #import "UMSocialWechatHandler.h"
  //設置微信appid appSecret,分享url連接
    [UMSocialWechatHandler setWXAppId:WX_appid appSecret:WX_appSecret url:@"http://www.umeng.com/social"];

(若是是單獨實現微信受權,還需實現上述的系統回調方法)

最後,點擊分享按鈕的時候,就可調用方法了...

若不是單獨實現微信分享,只須要在方法中的數組參數中,添加上微信的功能就好了。

 

不管是QQ仍是微信,都有分享完成的回調方法,是可選的;

//實現回調方法
-(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
{
    //根據responseCode獲得發送結果,若分享成功
    if (response.responseCode == UMSResponseCodeSuccess) {
        //獲得分享到的平臺名稱
        NSLog(@"share to sns name:%@",[[response.data allKeys] objectAtIndex:0]);
    }
}

 

若是是直接分享到微信,則調用下面的方法:

[[UMSocialDataService defaultDataService]postSNSWithTypes:@[UMShareToWechatSession,UMShareToWechatTimeline,UMShareToWechatFavorite] content:@"分享內嵌文字" image:nil location:nil urlResource:nil completion:^(UMSocialResponseEntity *response) {
        if (response.responseCode == UMSResponseCodeSuccess) {
            NSLog(@"分享成功!");
        }
    }];

 

 

到如今,基本上就能夠實現分享到平臺的功能了。。。

效果圖以下所示:

(我隨便寫了一個網址,沒有請求到數據-------模擬器沒有安裝QQ和微信,點擊會提示沒有安裝)

 

但願這篇文章會對您有所幫助,有什麼問題或建議,請與我聯繫。。。

相關文章
相關標籤/搜索