@gongzhen
2014-08-28T15:38:51.000000Z
字数 4899
阅读 2581
Umeng-Social
友盟社会化组件,可以让移动应用快速具备社会化分享功能,并提供实时、全面的社会化数据统计分析服务。
指南将会手把手教你使用社会化组件SDK,用5分钟为APP增加新浪微博、腾讯微博、人人网等平台登录及分享等功能。
支持的平台及功能对照表
平台 | 登录(Login) | 注销(Logout) | 登录检查(HasLoggedin) | 分享文本(ShareText) | 分享图片(SharePicture) | 分享链接(ShareLink) |
---|---|---|---|---|---|---|
新浪微博 | √ | √ | √ | √ | √ | √ |
人人网 | √ | √ | √ | √ | √ | √ |
腾讯微博 | √ | √ | √ | √ | √ | √ |
QQ空间 | √ | √ | √ | |||
豆瓣 | √ | √ | √ | √ | √ | √ |
微信 | √ | √ | √ | |||
√ | √ | √ | √ | √ | √ | |
√ | √ | √ | √ | √ | √ |
注意:
本文示例代码均针对最新版SDK,如果你所用SDK的类名或方法名与此文不符合,请使用你所用SDK的随包文档、或者下载使用最新版SDK。
如果你之前已经在友盟注册了应用,并获取到了Appkey,可以继续使用它。
如果你尚未在友盟注册开发者账号,需要先注册,注册之后登录你的账号,点击添加新应用,填写完应用基本信息后,将进入"下载SDK并添加代码"页面,此页面即可得到Appkey
。
右键单击项目“引用”节点,选择“管理NuGet程序包”
左侧选择“全部”,搜索“umengsocial”,选择“友盟社会化组件 for Windows Phone”安装。
安装完成后如下图所示:
如果不需要支持全部平台,可依照下表删除对应的库文件。
平台 | 对应库文件 |
---|---|
微信 | Google.ProtocolBuffersLite, MicroMsgSDK |
Hammock.WindowsPhone, ICSharpCode.SharpZipLib.WindowsPhone |
双击VS内Properties文件夹下WMAppManifest.xml文件,切换到功能页,选中以下两项:
//首先声明命名空间
using UmengSocialSDK;
...
//创建分享数据
UmengLink link = new UmengLink();
link.Url = @"http://v.yinyuetai.com/video/395495";
link.Type = LinkType.Music;
link.Author = "张学友";
link.Title = "情书";
link.Text = "Good music!";
link.ThumbnailImage = image; //只对微信有效
link.ThumbnailUrl = @"http://img3.imgtn.bdimg.com/it/u=3064730846,772080841&fm=23&gp=0.jpg"; //只对Facebook有效
//直接分享到某一平台
UmengClient umengClient = new SinaWeiboClient(Your_Umeng_App_Key);
var res = await _umengClient.ShareLinkAsync(link);
//显示平台列表,由用户选择平台进行分享
List<UmengClient> clients = new List<UmengClient>()
{
new SinaWeiboClient(Your_Umeng_App_Key),
new RenrenClient(Your_Umeng_App_Key),
new QzoneClient(Your_Umeng_App_Key),
new TencentWeiboClient(Your_Umeng_App_Key),
new DoubanClient(Your_Umeng_App_Key),
new WeixinClient(Your_Umeng_App_Key, Your_WeiXin_AppId),
new FaceBookClient(Your_Umeng_App_Key, Your_Facebook_AppId),
new TwitterClient(Your_Umeng_App_Key, Your_Twitter_ApiKey, Your_Twitter_ApiSecret)
};
UmengClient umengClient = new MultiClient(clients);
var res = await _umengClient.ShareLinkAsync(link);
分享到微信需要进行额外配置,具体步骤请参见第5节集成微信。
编译并运行后,点击添加分享功能的按钮出现如下分享页,那么说明你已经集成成功了!
平台列表页 | 授权页 | 分享编辑页 |
---|---|---|
请到微信开放平台进行登记,登记并选择移动应用进行设置后,将获得AppID,可立即用于开发。但应用登记完成后还需要提交审核,只有审核通过的应用才能正式发布使用。
右键点击应用的Properties下的WMAppManifest.xml,选择Open with...,然后选择Xml (Text) Editer打开该文件。在的前面,加上以下标签代码(如果你的文件中已经存在标签,则添加在已有的标签下)
<Extensions>
<FileTypeAssociation Name="SDK_DEMO" TaskID="_default" NavUriFragment="fileToken=%s">
<SupportedFileTypes>
<FileType>.wxb6815fe9897c1f75</FileType>
<FileType>.wechatapp</FileType>
</SupportedFileTypes>
</FileTypeAssociation>
</Extensions>
上面Xml片段中有两处需要修改的,一个是Name="SDK_DEMO",改成任意你喜欢的名字,两个支持的FileType,一个是.wechatapp, 另外一个是.wx3b34a14b66641dfd,其中“wx3b34a14b66641dfd”改成你在微信开放平台上登记应用时得到的AppID,这个务必要写对,不然微信拉不起你的应用。
继承WXEntryBasePage类,并覆写下表中的函数,来处理来自微信的响应,微信发送的数据,已经填到了参数中,可直接取用。注意:如果覆写OnNavigatedTo函数,需要调用base.OnNavigatedTo,以保证父类中的逻辑得以执行。
接口名称 | 说明 |
---|---|
void On_SendMessageToWX_Response(SendMessageToWX.Resp response) | 从你的应用发送消息给微信后,微信会发回一个成功或失败的响应,如果不关注是否成功,可直接GoBack处理 |
class AssociationUriMapper : UriMapperBase
{
private string tempUri;
public override Uri MapUri(Uri uri)
{
tempUri = uri.ToString();
// 根据文件类型打开程序
if (tempUri.Contains("/FileTypeAssociation"))
{
// 获取fileID (after "fileToken=").
int fileIDIndex = tempUri.IndexOf("fileToken=") + 10;
string fileID = tempUri.Substring(fileIDIndex);
// 获取文件名.
string incommingFileName = SharedStorageAccessManager.GetSharedFileName(fileID);
// 获取文件后缀
int extensionIndex = incommingFileName.LastIndexOf('.') + 1;
string incommingFileType = incommingFileName.Substring(extensionIndex).ToLower();
// 根据不同文件类型,跳转不同参数的地址
switch (incommingFileType)
{
case "wx3b34a14b66641dfd":
return new Uri("/DemoEntryPage.xaml?fileToken=" + fileID, UriKind.Relative);
default:
return new Uri("/MainPage.xaml", UriKind.Relative);
}
}
else
{
return uri;
}
}
}
case "wx3b34a14b66641dfd": 改成你的AppID。
/DemoEntryPage.xaml?fileToken=" 改成步骤[3]中继承WXEntryBasePage的Page的路径。
然后在App.xaml.cs的InitializePhoneApplication()函数中,增加一行代码:
// Assign the URI-mapper class to the application frame.
RootFrame.UriMapper = new AssociationUriMapper();
//分享到微信必须设置Title属性
UmengLink link = new UmengLink();
link.Url = @"http://v.yinyuetai.com/video/395495";
link.Type = LinkType.Music;
link.Author = "张学友";
link.Title = "情书";
link.Text = "Good music!";
link.ThumbnailImage = image; //只对微信有效
UmengClient umengClient = WeixinClient(Your_Umeng_App_Key, Your_WeiXin_AppId);
var res = await _umengClient.ShareLinkAsync(link);
微信集成需要注意以下几点:
- 在测试的时候,确保你安装的WP8的微信(4.0以上版本)
- 不要在Demo的上修改来形成你的应用程序,因为如果其他人跟你一样做 ,你们的AppStore上的AppID是一样的。
- 开发者的应用需要通过审核。开发者在申请应用必须要通过微信官网的审核才能进行调试.
平台 | 地址 |
---|---|
新浪微博 | http://open.weibo.com |
腾讯微博 | http://dev.t.qq.com |
QQ空间 | http://connect.qq.com/intro/login/ |
人人 | http://dev.renren.com |
豆瓣 | http://developers.douban.com/ |
微信 | http://open.weixin.qq.com |
https://developers.facebook.com | |
https://dev.twitter.com |
如果上述文档不能满足您的分享需求,请移步至“详细集成文档”。