友盟分享總結(jié) coder_hong

Untitled.gif

友盟分享

友盟官網(wǎng)
集成文檔

  • 首先注冊友盟賬號 SDK下載


    Snip20160616_2.png
  • 友盟個人中心中創(chuàng)建一個應(yīng)用程序
Snip20160616_3.png
  • 新建項目 將友盟的庫拖入工程中
Snip20160616_6.png
  • 配置項目環(huán)境跟添加需要的第三方庫
Snip20160616_7.png
  • 在 AppDelegate文件內(nèi)設(shè)置你的AppKey:
#import "UMSocial.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [UMSocialData setAppKey:@"507fcab25270157b37000010"];
}

  • 在你的控制器View添加分享按鈕 關(guān)聯(lián)Action
Snip20160616_8.png
  • 在分享的方法里實現(xiàn)代碼
#import "UMSocial.h"

    [UMSocialData defaultData].extConfig.title = @"友盟分享測試";
// 這里設(shè)置是點擊微信分享的內(nèi)容進(jìn)入的URL
    [UMSocialData defaultData].extConfig.wechatSessionData.url = @"http://www.chemayi.com";
    /**
     *  self代表在哪個控制器彈出默認(rèn)的分享界面
     
     */
    [UMSocialSnsService presentSnsIconSheetView:self // 在哪個控制器的View顯示分享
                                         appKey:@"5762b194e0f55a8a740001a5"
                                      shareText:@"人生要有要有夢想"
                                     shareImage:[UIImage imageNamed:@"1"]
                                shareToSnsNames:@[UMShareToWechatSession,UMShareToWechatTimeline,UMShareToSina,UMShareToQQ,UMShareToQzone, UMShareToEmail,UMShareToQQ, UMShareToFacebook, UMShareToYXSession, UMShareToLWSession, UMShareToAlipaySession, UMShareToDouban]
                                       delegate:nil];
}
Snip20160616_9.png

注意: 默認(rèn)情況下微信跟朋友圈一些分享圖標(biāo)是不會顯示出來的
通常點擊彈出對應(yīng)的分享的icon后,進(jìn)入時一個webView,也就是需要OAuth2.0授權(quán),需要用戶輸入賬戶名跟密碼進(jìn)行授權(quán),但是目前一般App很少直接讓用戶輸入密碼跟賬號,都是采取SSO授權(quán)

SSO授權(quán)
  • 本質(zhì)還是OAuth2.0 例如我們微信分享,當(dāng)用戶手機(jī)上已將安裝微信客戶端以后,點擊微信分享后,自動通過已登錄的微信賬號進(jìn)行授權(quán)分享

  • SSO授權(quán)通常配置的步驟(額外需要添加的步驟)

    • 拿新浪微博舉例
  • 解壓下載文件夾圾亏,將SinaSSO文件夾添加到工程译荞。

Snip20160616_10.png
  • 在other linker flags增加-ObjC 選項岩睁,并添加ImageIO 系統(tǒng)framework

  • 配置URL schemes

    • 在你的工程設(shè)置項,targets 一欄下,選中自己的 target,在 Info->URL Types 中添加 URL Schemes,格式為“wb”+新浪appkey澄惊,例如“wb126663232”
Snip20160616_11.png
  • 配置微博APPkey
  #import "UMSocialSinaSSOHandler.h"
  //第一個參數(shù)為新浪appkey,第二個參數(shù)為新浪secret世分,第三個參數(shù)是新浪微博回調(diào)地址岛马,這里必須要和你在新浪微博后臺設(shè)置的回調(diào)地址一致。
   [UMSocialSinaSSOHandler openNewSinaSSOWithAppKey:@"3921700954"
                                              secret:@"04b48b094faeb16683c32669824ebdad"
                                         RedirectURL:@"http://sns.whalecloud.com/sina2/callback"];

注意: 回調(diào)URL必須和后臺保持一致届案,否則會返回錯誤碼21322

  • 添加系統(tǒng)回調(diào)
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    BOOL result = [UMSocialSnsService handleOpenURL:url];
    if (result == FALSE) {
        //調(diào)用其他SDK庵楷,例如支付寶SDK等
    }
    return result;
}
  • 這樣配置以后,我們在點擊分享就直接進(jìn)入新浪客戶端

微信分享

微信開放平臺

  • 注冊微信平臺賬號(需要審核)
  • 管理賬號
Snip20160616_13.png
  • 點擊查看
Snip20160616_14.png
  • 添加相關(guān)文件
Snip20160617_15.png
  • 添加SDK依賴的系統(tǒng)庫文件。(如果已經(jīng)添加過就不需要添加了)
Snip20160617_16.png
  • 在新發(fā)布的iOS9系統(tǒng)上圍繞用戶數(shù)據(jù)的安全性和體驗新增了一些安全特性楣颠,同時也影響了應(yīng)用的實現(xiàn)以及集成方式尽纽,為了保證良好的穩(wěn)定性和體驗,需要做如下處理:
    • 以iOS9 SDK編譯的工程會默認(rèn)以SSL安全協(xié)議進(jìn)行網(wǎng)絡(luò)傳輸童漩,即HTTPS弄贿,如果依然使用HTTP協(xié)議請求網(wǎng)絡(luò)會報系統(tǒng)異常并中斷請求。目前可用如下兩種方式保持用HTTP進(jìn)行網(wǎng)絡(luò)連接:
    • A矫膨、在info.plist中加入安全域名白名單(右鍵info.plist用source code打開)
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>log.umsns.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSTemporaryExceptionMinimumTLSVersion</key>
            <string>TLSv1.1</string>
        </dict>
        <key>sns.whalecloud.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSTemporaryExceptionMinimumTLSVersion</key>
            <string>TLSv1.1</string>
        </dict>

        <!-- 集成新浪微博對應(yīng)的HTTP白名單-->
        <key>sina.cn</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <key>weibo.cn</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <key>weibo.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <key>sinaimg.cn</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <key>sinajs.cn</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <key>sina.com.cn</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <!-- 新浪微博-->

        <!-- 集成微信差凹、QQ、Qzone豆拨、騰訊微博授權(quán)對應(yīng)的HTTP白名單-->
        <key>qq.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <!-- 騰訊授權(quán)-->

        <!-- 集成人人授權(quán)對應(yīng)的HTTP白名單-->
        <key>renren.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <!-- 人人授權(quán)-->

        <!-- 集成Facebook授權(quán)對應(yīng)的HTTP白名單-->
        <key>facebook.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>                
            <key>NSExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <key>fbcdn.net</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <key>akamaihd.net</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <!-- Facebook授權(quán)-->

        <!-- 集成Twitter授權(quán)對應(yīng)的HTTP白名單-->
        <key>twitter.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>                
            <key>NSExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <!-- Twitter授權(quán)-->
    </dict>
</dict>

注:以上部分平臺官方未給出相應(yīng)白名單直奋,由技術(shù)人員測試各個平臺所收集而來,如果有所遺漏施禾,請自行加入并向客服說明脚线,我們會進(jìn)一步補(bǔ)充名單。

  • B弥搞、在info.plist的NSAppTransportSecurity下新增NSAllowsArbitraryLoads并設(shè)置為YES邮绿,指定所有HTTP連接都可正常請求
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

  • 應(yīng)用跳轉(zhuǎn)(SSO等)
    • 如果你的應(yīng)用使用了如SSO授權(quán)登錄或跳轉(zhuǎn)分享功能,在iOS9下就需要增加一個可跳轉(zhuǎn)的白名單攀例,指定對應(yīng)跳轉(zhuǎn)App的URL Scheme船逮,否則將在第三方平臺判斷是否跳轉(zhuǎn)時用到的canOpenURL時返回NO,進(jìn)而只進(jìn)行webview授權(quán)或授權(quán)/分享失敗粤铭。
    • 同樣在info.plist增加:
<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>alipay</string>
    <string>alipayshare</string>


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

    <!-- 來往 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>

注:以上部分平臺官方未給出相應(yīng)白名單,由技術(shù)人員測試各個平臺所收集而來,如果有所遺漏酱鸭,請自行加入并向客服說明吗垮,我們會進(jìn)一步補(bǔ)充名單。

  • 應(yīng)用瘦身(App Thining)
iOS9 SDK新增了對App瘦身的功能凹髓,詳情見App Thining烁登。目前各個第三方平臺正在進(jìn)行App thining的支持,所以為了正常使用第三方SDK及分享SDK蔚舀,需要在Build Setting中將Enable bitcode關(guān)閉,或設(shè)置編譯標(biāo)識ENABLE_BITCODE=NO饵沧。
注:bitcode僅在Xcode7以上顯示并默認(rèn)開啟。
Snip20160617_19.png
  • 在你的程序APPdelegate入口方法添加下面的代碼
//設(shè)置微信AppId赌躺、appSecret狼牺,分享url
    [UMSocialWechatHandler setWXAppId:@"wxe030296d5c5968b4" appSecret:@"0cde569ce201db3701b558fd2405ec0b" url:@"http://www.hao123.com"];
    return YES;
  • 注意:如果不添加上面的代碼,則分享列表中不會出現(xiàn)微信及朋友圈圖標(biāo)
  • URL必須為http鏈接
Snip20160617_17.png
  • 配置URL schemes
Snip20160616_11.png
  • 添加系統(tǒng)回調(diào)
    • 在APPdelegate中實現(xiàn)下面兩個系統(tǒng)回調(diào)方法:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    BOOL result = [UMSocialSnsService handleOpenURL:url];
    if (result == FALSE) {
        //調(diào)用其他SDK寿谴,例如支付寶SDK等
    }
    return result;
}

  • ViewController.m

- (void)viewDidLoad {
    [super viewDidLoad];

}

- (IBAction)share:(id)sender {
    
    [UMSocialData defaultData].extConfig.title = @"友盟分享測試";
    [UMSocialData defaultData].extConfig.wechatSessionData.url = @"http://www.chemayi.com";
    /**
     *  self代表在哪個控制器彈出默認(rèn)的分享界面
     
     */
    [UMSocialSnsService presentSnsIconSheetView:self // 在哪個控制器的View顯示分享
                                         appKey:@"5762b194e0f55a8a740001a5"
                                      shareText:@"人生要有要有夢想"
                                     shareImage:[UIImage imageNamed:@"1"]
                                shareToSnsNames:@[UMShareToWechatSession,UMShareToWechatTimeline,UMShareToSina,UMShareToQQ,UMShareToQzone, UMShareToEmail,UMShareToQQ, UMShareToFacebook, UMShareToYXSession, UMShareToLWSession, UMShareToAlipaySession, UMShareToDouban]
                                       delegate:nil];
}

@end
Untitled.gif
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锁右,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子讶泰,更是在濱河造成了極大的恐慌,老刑警劉巖拂到,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痪署,死亡現(xiàn)場離奇詭異,居然都是意外死亡兄旬,警方通過查閱死者的電腦和手機(jī)狼犯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來领铐,“玉大人悯森,你說我怎么就攤上這事⌒髂欤” “怎么了瓢姻?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長音诈。 經(jīng)常有香客問我幻碱,道長,這世上最難降的妖魔是什么细溅? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任褥傍,我火速辦了婚禮,結(jié)果婚禮上喇聊,老公的妹妹穿的比我還像新娘恍风。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布朋贬。 她就那樣靜靜地躺著凯楔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪兄世。 梳的紋絲不亂的頭發(fā)上啼辣,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天,我揣著相機(jī)與錄音御滩,去河邊找鬼鸥拧。 笑死,一個胖子當(dāng)著我的面吹牛削解,可吹牛的內(nèi)容都是我干的富弦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼氛驮,長吁一口氣:“原來是場噩夢啊……” “哼腕柜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起矫废,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤盏缤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蓖扑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體唉铜,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年律杠,在試婚紗的時候發(fā)現(xiàn)自己被綠了潭流。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡柜去,死狀恐怖灰嫉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嗓奢,我是刑警寧澤讼撒,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站蔓罚,受9級特大地震影響椿肩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜豺谈,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一郑象、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧茬末,春花似錦厂榛、人聲如沸盖矫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辈双。三九已至,卻和暖如春柜砾,著一層夾襖步出監(jiān)牢的瞬間湃望,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工痰驱, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留证芭,地道東北人。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓担映,卻偏偏與公主長得像废士,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蝇完,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 官方網(wǎng)址: http://dev.umeng.com/social/ios/operation#2 一官硝、注冊友盟賬...
    PerhapYs閱讀 12,956評論 7 44
  • 前言 友盟能實現(xiàn)分享功能,友盟+申請第三方賬號的目的: 進(jìn)行分享朋魔、授權(quán)操作需要在第三方平臺創(chuàng)建應(yīng)用并提交審核达箍,友盟...
    CoderZb閱讀 9,714評論 8 60
  • 1 簡介 現(xiàn)如今幾乎所有人都有社交賬號和社交App,而分享功能也幾乎隨處可見铺厨。本文的目的在于介紹分享功能的基本實現(xiàn)...
    Cloudox_閱讀 1,285評論 0 3
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)硬纤,斷路器解滓,智...
    卡卡羅2017閱讀 134,652評論 18 139
  • 文字/插圖:Kurny 1.《請你不要難過》 緣分有過,火花有過筝家,但最后卻不和洼裤。請你不要難過,或分開更好過溪王。 有人...
    Kurny91閱讀 1,598評論 0 0