友盟分享的開發(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];