iOS開發(fā)之快速集成友盟社會化分享功能(v6.1.1)

1. U-Share SDK集成

1.1 下載U-Share SDK

通過iOS社會化組件選擇所需的社交平臺后進行下載,下載鏈接

SDK目錄介紹
  • Document - U-Share SDK文檔
  • UMSocialDemo - U-Share SDK Demo(如點選下載)
    UMSocial - U-Share SDK核心目錄
    UMSocialSDK - U-Share SDK核心framework
    UMSocialUI - U-Share 分享UI資源、分享面板framework
  • SocialLibraries - 所選擇下載的第三方平臺SDK及U-Share鏈接庫

1.2 加入U-Share SDK

將U-Share SDK添加到工程
添加項目配置

在Other Linker Flags加入-ObjC

加入依賴系統(tǒng)庫
選中項目Target -> Linked Frameworks and Libraries列表中添加依賴庫
SystemConfiguration.framework
CoreTelephony.framework
ImageIO.framework
libsqlite3.tbd
libc++.tbd
libz.tbd

2. U-Share SDK平臺配置

從這一步驟就開始需要第三方appKey和appSecret等信息,可參考鏈接申請所需的平臺賬號。

2.1 配置各平臺URL Scheme

2.1.1 添加URL Types

URL Scheme是通過系統(tǒng)找到并跳轉(zhuǎn)對應(yīng)app的一類設(shè)置,通過向項目中的info.plist文件中加入URL types可使用第三方平臺所注冊的appkey信息向系統(tǒng)注冊你的app,當(dāng)跳轉(zhuǎn)到第三方應(yīng)用授權(quán)或分享后,可直接跳轉(zhuǎn)回你的app。

添加URL Types有如下幾處,都可進行設(shè)置
  • 1 通過工程設(shè)置面板


  • 2 通過info.plist文件編輯


  • 3 直接編輯info.plist中XML代碼


2.1.2 配置第三方平臺URL Scheme(未列出則不需設(shè)置)
平臺 格式 舉例 備注
微信 appKey wxdc1e388c3822c80b
QQ/Qzone 以下兩項都需添加:1、"tencent"+騰訊QQ互聯(lián)應(yīng)用appID 2、“QQ”+騰訊QQ互聯(lián)應(yīng)用appID轉(zhuǎn)換成十六進制(不足8位前面補0) appID:1004244681、tencent100424468 2、QQ05fc5b14 100424468轉(zhuǎn)十六進制為5fc5b14,因不足8位向前補0,結(jié)果為05fc5b14,加"QQ"前綴QQ05fc5b14
新浪微博 “wb”+新浪appKey wb3921700954
釘釘 釘釘appkey dingoalmlnohc0wggfedpk URL Type中的identifier填"dingtalk"
支付寶 “ap”+appID ap2015111700822536 URL Type中的identifier填"alipayShare"
易信 易信appkey yx35664bdff4db42c2b7be1e29390c1a06
點點蟲 點點蟲appID 8112117817424282305 URL Type中的identifier填"Laiwang"

2.2 適配iOS9/10系統(tǒng)

iOS9系統(tǒng)后Apple對HTTP請求及訪問外部應(yīng)用做了更加嚴格的要求,包括HTTP白名單、跳轉(zhuǎn)第三方應(yīng)用白名單等,適配iOS9/10系統(tǒng)

3.初始化設(shè)置

3.1 初始化U-Share及第三方平臺

app啟動后進行U-Share和第三方平臺的初始化工作 以下代碼將所有平臺初始化示例放出,開發(fā)者根據(jù)平臺需要選取相應(yīng)代碼,并替換為所屬注冊的appKey和appSecret。
在AppDelegate.m中設(shè)置如下代碼

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
      [[UMSocialManager defaultManager] openLog:YES];
      //設(shè)置友盟appkey
      [[UMSocialManager defaultManager] setUmSocialAppkey:@"57b432afe0f55a9832001a0a"];
      //NSLog(@"UMeng social version: %@", [UMSocialGlobal umSocialSDKVersion]);
      //設(shè)置微信的appId和appKey
      [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatSession appKey:@"wxf84eca1790791ae0"appSecret:@"3baf1193c85774b3fd9d18447d76cab0" redirectURL:@"http://mobile.umeng.com/social"];
      //設(shè)置分享到QQ互聯(lián)的appId和appKey
      [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:@"100424468"  appSecret:@"100424468" redirectURL:@"http://mobile.umeng.com/social"];
      //設(shè)置新浪的appId和appKey
      [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_SinaappKey:@"3921700954"  appSecret:@"04b48b094faeb16683c32669824ebdad" redirectURL:@"http://sns.whalecloud.com/sina2/callback"];
      // 如果不想顯示平臺下的某些類型,可用以下接口設(shè)置
      [[UMSocialManager defaultManager] removePlatformProviderWithPlatformTypes:@[@(UMSocialPlatformType_WechatFavorite),@(UMSocialPlatformType_QQ)]];   
      return YES;
 } 

3.1.2 設(shè)置系統(tǒng)回調(diào)
- (BOOL)application:(UIApplication *)application openURL:(NSURL )url sourceApplication:(NSString)sourceApplication annotation:(id)annotation
{
BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url];
if (!result) {

}
return result;
}

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url];
if (!result) {
    
}
return result;
}

4. 第三方平臺分享

4.1 彈出分享面板

- (IBAction)share:(id)sender {    
    [UMSocialUIManager addCustomPlatformWithoutFilted:UMSocialPlatformType_UserDefine_Begin+2
                                 withPlatformIcon:[UIImage imageNamed:@"二維碼圖標(biāo)"]
                                 withPlatformName:@"二維碼"];

   [UMSocialShareUIConfig shareInstance].sharePageGroupViewConfig.sharePageGroupViewPostionType =   UMSocialSharePageGroupViewPositionType_Bottom;
   [UMSocialShareUIConfigshareInstance].sharePageScrollViewConfig.shareScrollViewPageItemStyleType =   UMSocialPlatformItemViewBackgroudType_None;
   [UMSocialUIManager showShareMenuViewInWindowWithPlatformSelectionBlock:^(UMSocialPlatformType  platformType, NSDictionary *userInfo) {
      if (platformType == UMSocialPlatformType_UserDefine_Begin+2) {
          //自定義圖標(biāo)的點擊事件
      }
      else{
          [self shareWebPageToPlatformType:platformType];
      }
  }];
}
網(wǎng)頁分享
- (void)shareWebPageToPlatformType:(UMSocialPlatformType)platformType{
    //創(chuàng)建分享消息對象
    UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
    //創(chuàng)建網(wǎng)頁內(nèi)容對象
    NSString* thumbURL = IMGAPI(self.imageStr);
    NSString *url = [NSString stringWithFormat:SHARE(self.msIdStr)];
    UMShareWebpageObject *shareObject =     [UMShareWebpageObject shareObjectWithTitle:self.topic descr:url thumImage:thumbURL];
    //設(shè)置網(wǎng)頁地址
    shareObject.webpageUrl =url;
    //分享消息對象設(shè)置分享內(nèi)容對象
    messageObject.shareObject = shareObject;
    //調(diào)用分享接口
    [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:selfcompletion:^(id data, NSError *error) {
    if (error) {
        UMSocialLogInfo(@"************Share fail with error %@*********",error);
    }else{
        if ([data isKindOfClass:[UMSocialShareResponse class]]) {
            UMSocialShareResponse *resp = data;
            //分享結(jié)果消息
            UMSocialLogInfo(@"response message is %@",resp.message);
            //第三方原始返回的數(shù)據(jù)
            UMSocialLogInfo(@"response originalResponse data is %@",resp.originalResponse);
        }else{
            UMSocialLogInfo(@"response data is %@",data);
        }
    }
  }];
}
其他類型請參考文檔

介紹就到這里了,至于其他的一些分享大家可以好好看看友盟的官方文檔
謝謝?。?!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容