版本記錄
版本號 | 時間 |
---|---|
V1.0 | 2018.04.04 |
前言
相信很多人用過友盟,包括友盟的第三方登錄、分享以及統計。這里我們就分幾個模塊進行詳細的說明 —— 移動統計
(U - App)
、網站統計(U - Web)
、消息推送(U - Push)
、社會化分享(U - Share)
、游戲統計(U - Game)
、互聯網運營數據服務(Dplus)
- 多維度、一站式、精細化數據管理服務。感興趣的可以看上面幾篇。
1. 友盟集成(一) —— UShare模塊之快速集成(一)
分享到第三方平臺
分享目前支持的類型有:
- 網頁類型(網頁鏈接)
- 圖片
- 文本
- 表情(GIF圖片,即Emotion類型,只有微信支持)
- 圖文(包含一張圖片和一段文本)
- 視頻(只支持視頻URL、縮略圖及描述)
- 音樂(只支持音樂URL、縮略圖及描述)
1. 分享LinkCard(網頁鏈接)
- (void)shareWebPageToPlatformType:(UMSocialPlatformType)platformType
{
//創建分享消息對象
UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
//創建網頁內容對象
NSString* thumbURL = @"https://mobile.umeng.com/images/pic/home/social/img-1.png";
UMShareWebpageObject *shareObject = [UMShareWebpageObject shareObjectWithTitle:@"歡迎使用【友盟+】社會化組件U-Share" descr:@"歡迎使用【友盟+】社會化組件U-Share,SDK包最小,集成成本最低,助力您的產品開發、運營與推廣!" thumImage:thumbURL];
//設置網頁地址
shareObject.webpageUrl = @"http://mobile.umeng.com/social";
//分享消息對象設置分享內容對象
messageObject.shareObject = shareObject;
//調用分享接口
[[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {
if (error) {
UMSocialLogInfo(@"************Share fail with error %@*********",error);
}else{
if ([data isKindOfClass:[UMSocialShareResponse class]]) {
UMSocialShareResponse *resp = data;
//分享結果消息
UMSocialLogInfo(@"response message is %@",resp.message);
//第三方原始返回的數據
UMSocialLogInfo(@"response originalResponse data is %@",resp.originalResponse);
}else{
UMSocialLogInfo(@"response data is %@",data);
}
}
}];
}
更多分享類型詳見進階文檔-分享到第三方平臺。
2. 調用分享面板
在分享按鈕綁定如下觸發代碼
#import <UShareUI/UShareUI.h>
//顯示分享面板
[UMSocialUIManager showShareMenuViewInWindowWithPlatformSelectionBlock:^(UMSocialPlatformType platformType, NSDictionary *userInfo) {
// 根據獲取的platformType確定所選平臺進行下一步操作
}];
更多分享面板說明請參考進階文檔-分享面板UI。
3. 定制自己的分享面板預定義平臺
以下方法可設置平臺順序
#import <UShareUI/UShareUI.h>
[UMSocialUIManager setPreDefinePlatforms:@[@(UMSocialPlatformType_Sina),@(UMSocialPlatformType_QQ),@(UMSocialPlatformType_WechatSession)]];
[UMSocialUIManager showShareMenuViewInWindowWithPlatformSelectionBlock:^(UMSocialPlatformType platformType, NSDictionary *userInfo) {
// 根據獲取的platformType確定所選平臺進行下一步操作
}];
為避免應用審核被拒,僅會對有效的平臺進行顯示,如平臺應用未安裝,或平臺應用不支持等會進行隱藏。 由于以上原因,在模擬器上部分平臺會隱藏。
如果遇到分享面板未顯示,請參考分享面板無法彈出
Swift接入U-Share SDK
Swift調用Objective-C需要建立一個橋接頭文件進行交互。
1. 新建橋接頭文件
2. 設置Objective-C橋接文件
3. 導入SDK頭文件
在新建的橋接文件header.h中加入U-Share SDK頭文件:
//
// Use this file to import your target's public headers that you would like to expose to Swift.
//
// U-Share核心SDK
#import <UMShare/UMShare.h>
// U-Share分享面板SDK,未添加分享面板SDK可將此行去掉
#import <UShareUI/UShareUI.h>
4. UMSocialDemo的OC和Swift的切換
UMSocialDemo
是用OC的代碼編寫的,同時也兼容了swift3.0的調用示例(UMSocialDemo不再對swift2.0做示例兼容).
swift文件夾的結構
UMSocialSDK-Bridging-Header.h
為swift3.0的橋接文件,主要是在swift3.0中,調用oc的代碼。
UMSocialSwiftInterface.swift
為Swift3.0的接口文件,主要是為了展示用戶讓oc調用swift3.0的代碼的示例(用戶可以在swift3.0的工程中直接調用對應的swift接口)。
設置切換swift的宏
引入對應的swift的頭文件,并在OC中調用swift3.0的代碼如下
#ifdef UM_Swift
#import "UMSocialDemo-Swift.h"
#endif
//分享文本
- (void)shareTextToPlatformType:(UMSocialPlatformType)platformType
{
//創建分享消息對象
UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
//設置文本
messageObject.text = UMS_Text;
#ifdef UM_Swift
[UMSocialSwiftInterface shareWithPlattype:platformType messageObject:messageObject viewController:self completion:^(UMSocialShareResponse * data, NSError * error) {
#else
//調用分享接口
[[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {
#endif
if (error) {
UMSocialLogInfo(@"************Share fail with error %@*********",error);
}else{
if ([data isKindOfClass:[UMSocialShareResponse class]]) {
UMSocialShareResponse *resp = data;
//分享結果消息
UMSocialLogInfo(@"response message is %@",resp.message);
//第三方原始返回的數據
UMSocialLogInfo(@"response originalResponse data is %@",resp.originalResponse);
}else{
UMSocialLogInfo(@"response data is %@",data);
}
}
[self alertWithError:error];
}];
}
注意事項如下:
UMSocialDemo-Swift.h
是工程自動為OC調用swift生成的,如果在新建的工程中應該是$(TARGET_NAME)-Swift.h
,$(TARGET_NAME)
為你的工程默認配置的名字UMSocialDemo
需要xcode8下打開,因為里面引入了swift3.0的文件,不然會編譯出錯(如果不需要swift3.0,直接運行OC的代碼,可以去掉對應宏 UM_Swift 和工程里面對應的 文件夾Swift 即可編譯通過)。
后記
本篇主要介紹了分享到第三方平臺和swift接入U-Share SDK,感興趣的給個贊或者關注~~~