iOS 友盟分享實(shí)現(xiàn)過(guò)程

友盟分享的開發(fā)文檔:
http://dev.umeng.com/social/ios/quick-integration?spm=0.0.0.0.ZOvbvz

最近編寫了一個(gè)友盟分享的Demo,實(shí)現(xiàn)了友盟自帶分享 UI 和自定義分享 UI 兩個(gè)樣式將分享的內(nèi)容分享到微信和 QQ。下面是具體的實(shí)現(xiàn)過(guò)程:

  • 首先注冊(cè)賬號(hào)獲取相應(yīng)的配置信息

  • 友盟開發(fā)者賬號(hào) ------ 獲取 appkey

  • 微信開發(fā)者賬號(hào)------獲取 appid 和 APPSecret

  • QQ 開發(fā)者賬號(hào)------獲取 appid 和 appkey

  • 下載友盟分享的 SDK
     有兩種方式:
     1、官網(wǎng)下載 SDK,下載完成之后導(dǎo)入到項(xiàng)目中。
     2、使用 cocoapods 集成友盟:在 Podfile中寫入 pod 'UMengSocial',可以參考文檔:http://www.cnblogs.com/huahua0809/p/4933536.html

  • 添加 SDK 依賴的系統(tǒng)庫(kù)文件
     在 Xcode 中打開工程配置文件,選擇“summary”一欄,選擇“Linked Frameworks and Libraries”一欄,點(diǎn)擊“+”圖標(biāo)添加下面八個(gè)庫(kù)文件,分別是:
    Security.framework
    libiconv.dylib
    SystemConfiguration.framework
    CoreGraphics.Framework
    libsqlite3.dylib
    CoreTelephony.framework
    libstdc++.dylib
    libz.dylib

這只是其中的一部分,不同的平臺(tái)依賴的系統(tǒng)庫(kù)文件不同,根據(jù)官方文檔添加即可

  • 配置 URL schemes
     在你的工程設(shè)置項(xiàng),targets一欄下,選中自己的 target,在 info->URL Types 根據(jù)官方文檔添加 URL Schemes

  • 設(shè)置白名單
     如果你的應(yīng)用使用了如 SSO 授權(quán)登錄或者跳轉(zhuǎn)分享功能,在 iOS 9下需要增加一個(gè)可跳轉(zhuǎn)的白名單,指定對(duì)應(yīng)跳轉(zhuǎn) APP 的 URL Scheme,否則將在第三方平臺(tái)判斷是否跳轉(zhuǎn)時(shí)用到的 canOpenURL 時(shí)返回 NO,進(jìn)而只進(jìn)行 webview 授權(quán)或者授權(quán)/分享失敗

<key>LSApplicationQueriesSchemes</key><array>
  <!-- 微信 URL Scheme 白名單-->
  <string>wechat</string>
  <string>weixin</string>

  <!-- 新浪微博 URL Scheme 白名單-->
  <string>sinaweibohd</string>
  <string>sinaweibo</string>
  <string>sinaweibosso</string>
  <string>weibosdk</string>
  <string>weibosdk2.5</string>

  <!-- QQ、Qzone URL Scheme 白名單-->
  <string>mqqapi</string>
  <string>mqq</string>
  <string>mqqOpensdkSSoLogin</string>
  <string>mqqconnect</string>
  <string>mqqopensdkdataline</string>
  <string>mqqopensdkgrouptribeshare</string>
  <string>mqqopensdkfriend</string>
  <string>mqqopensdkapi</string>
  <string>mqqopensdkapiV2</string>
  <string>mqqopensdkapiV3</string>
  <string>mqzoneopensdk</string>
  <string>wtloginmqq</string>
  <string>wtloginmqq2</string>
  <string>mqqwpa</string>
  <string>mqzone</string>
  <string>mqzonev2</string>
  <string>mqzoneshare</string>
  <string>wtloginqzone</string>
  <string>mqzonewx</string>
  <string>mqzoneopensdkapiV2</string>
  <string>mqzoneopensdkapi19</string>
  <string>mqzoneopensdkapi</string>
  <string>mqqbrowser</string>
  <string>mttbrowser</string>

  <!-- 人人 URL Scheme 白名單-->
  <string>renrenios</string>
  <string>renrenapi</string>
  <string>renren</string>
  <string>renreniphone</string>

  <!-- 來(lái)往 URL Scheme 白名單-->
  <string>laiwangsso</string>

  <!-- 易信 URL Scheme 白名單-->
  <string>yixin</string>
  <string>yixinopenapi</string>

  <!-- instagram URL Scheme 白名單-->
  <string>instagram</string>

  <!-- whatsapp URL Scheme 白名單-->
  <string>whatsapp</string>

  <!-- line URL Scheme 白名單-->
  <string>line</string>

  <!-- Facebook URL Scheme 白名單-->
  <string>fbapi</string>
  <string>fb-messenger-api</string>
  <string>fbauth2</string>
  <string>fbshareextension</string></array>

代碼實(shí)現(xiàn)

  • 在 AppDelegate 設(shè)置友盟 AppKey
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {   
  [UMSocialData setAppKey:UMAppKey];
  [UMSocialWechatHandler setWXAppId:WeChatAppId appSecret:WeChatAppSecret url:@"http://www.itdecent.cn/users/238e769238c2/latest_articles"];
  [UMSocialQQHandler setQQWithAppId:QQAppID appKey:QQAppKey url:@"http://www.itdecent.cn/users/238e769238c2/latest_articles"];
  return YES;
}
  • 系統(tǒng)自帶分享 UI 實(shí)現(xiàn)分享
[UMSocialSnsService presentSnsIconSheetView:self
                                       appKey:@"570c660367e58e91600010a5"
                                    shareText:@"友盟分享"
                                   shareImage:[UIImage imageNamed:@"icon.png"]
                              shareToSnsNames:[NSArray arrayWithObjects:UMShareToWechatSession,UMShareToWechatTimeline,UMShareToWechatFavorite,UMShareToQQ,UMShareToQzone,nil]
                                     delegate:self];

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

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

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