@gongzhen
2014-08-28T07:38:51.000000Z
字数 4899
阅读 3339
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 |
如果上述文档不能满足您的分享需求,请移步至“详细集成文档”。