[关闭]
@gongzhen 2014-08-28T07:38:51.000000Z 字数 4899 阅读 2473

WindowsPhone Social SDK 2.0 快速集成指南

Umeng-Social

1 产品概述

友盟社会化组件,可以让移动应用快速具备社会化分享功能,并提供实时、全面的社会化数据统计分析服务。
指南将会手把手教你使用社会化组件SDK,用5分钟为APP增加新浪微博、腾讯微博、人人网等平台登录及分享等功能。

支持的平台及功能对照表

平台 登录(Login) 注销(Logout) 登录检查(HasLoggedin) 分享文本(ShareText) 分享图片(SharePicture) 分享链接(ShareLink)
新浪微博
人人网
腾讯微博
QQ空间
豆瓣
微信
Facebook
Twitter

注意:
本文示例代码均针对最新版SDK,如果你所用SDK的类名或方法名与此文不符合,请使用你所用SDK的随包文档、或者下载使用最新版SDK。

2 获取友盟Appkey

3 集成SDK

[1] 安装SDK

  1. 右键单击项目“引用”节点,选择“管理NuGet程序包”

    alt text

  2. 左侧选择“全部”,搜索“umengsocial”,选择“友盟社会化组件 for Windows Phone”安装。

    alt text

  3. 安装完成后如下图所示:

    alt text

  4. 如果不需要支持全部平台,可依照下表删除对应的库文件。

    平台 对应库文件
    微信 Google.ProtocolBuffersLite, MicroMsgSDK
    Facebook Facebook
    Twitter Hammock.WindowsPhone, ICSharpCode.SharpZipLib.WindowsPhone

[2] 声明功能

双击VS内Properties文件夹下WMAppManifest.xml文件,切换到功能页,选中以下两项:

[3] 添加分享功能

  1. //首先声明命名空间
  2. using UmengSocialSDK;
  3. ...
  4. //创建分享数据
  5. UmengLink link = new UmengLink();
  6. link.Url = @"http://v.yinyuetai.com/video/395495";
  7. link.Type = LinkType.Music;
  8. link.Author = "张学友";
  9. link.Title = "情书";
  10. link.Text = "Good music!";
  11. link.ThumbnailImage = image; //只对微信有效
  12. link.ThumbnailUrl = @"http://img3.imgtn.bdimg.com/it/u=3064730846,772080841&fm=23&gp=0.jpg"; //只对Facebook有效
  13. //直接分享到某一平台
  14. UmengClient umengClient = new SinaWeiboClient(Your_Umeng_App_Key);
  15. var res = await _umengClient.ShareLinkAsync(link);
  16. //显示平台列表,由用户选择平台进行分享
  17. List<UmengClient> clients = new List<UmengClient>()
  18. {
  19. new SinaWeiboClient(Your_Umeng_App_Key),
  20. new RenrenClient(Your_Umeng_App_Key),
  21. new QzoneClient(Your_Umeng_App_Key),
  22. new TencentWeiboClient(Your_Umeng_App_Key),
  23. new DoubanClient(Your_Umeng_App_Key),
  24. new WeixinClient(Your_Umeng_App_Key, Your_WeiXin_AppId),
  25. new FaceBookClient(Your_Umeng_App_Key, Your_Facebook_AppId),
  26. new TwitterClient(Your_Umeng_App_Key, Your_Twitter_ApiKey, Your_Twitter_ApiSecret)
  27. };
  28. UmengClient umengClient = new MultiClient(clients);
  29. var res = await _umengClient.ShareLinkAsync(link);

分享到微信需要进行额外配置,具体步骤请参见第5节集成微信

4 验证效果

编译并运行后,点击添加分享功能的按钮出现如下分享页,那么说明你已经集成成功了!

平台列表页 授权页 分享编辑页

5 集成微信

[1] 申请微信的AppID

请到微信开放平台进行登记,登记并选择移动应用进行设置后,将获得AppID,可立即用于开发。但应用登记完成后还需要提交审核,只有审核通过的应用才能正式发布使用。

[2] 修改WMAppManifest.xml

右键点击应用的Properties下的WMAppManifest.xml,选择Open with...,然后选择Xml (Text) Editer打开该文件。在的前面,加上以下标签代码(如果你的文件中已经存在标签,则添加在已有的标签下)

  1. <Extensions>
  2. <FileTypeAssociation Name="SDK_DEMO" TaskID="_default" NavUriFragment="fileToken=%s">
  3. <SupportedFileTypes>
  4. <FileType>.wxb6815fe9897c1f75</FileType>
  5. <FileType>.wechatapp</FileType>
  6. </SupportedFileTypes>
  7. </FileTypeAssociation>
  8. </Extensions>

上面Xml片段中有两处需要修改的,一个是Name="SDK_DEMO",改成任意你喜欢的名字,两个支持的FileType,一个是.wechatapp, 另外一个是.wx3b34a14b66641dfd,其中“wx3b34a14b66641dfd”改成你在微信开放平台上登记应用时得到的AppID,这个务必要写对,不然微信拉不起你的应用。

[3] 编写微信入口Page类

继承WXEntryBasePage类,并覆写下表中的函数,来处理来自微信的响应,微信发送的数据,已经填到了参数中,可直接取用。注意:如果覆写OnNavigatedTo函数,需要调用base.OnNavigatedTo,以保证父类中的逻辑得以执行。

接口名称 说明
void On_SendMessageToWX_Response(SendMessageToWX.Resp response) 从你的应用发送消息给微信后,微信会发回一个成功或失败的响应,如果不关注是否成功,可直接GoBack处理

[4] 继承系统的UriMapperBase类

  1. class AssociationUriMapper : UriMapperBase
  2. {
  3. private string tempUri;
  4. public override Uri MapUri(Uri uri)
  5. {
  6. tempUri = uri.ToString();
  7. // 根据文件类型打开程序
  8. if (tempUri.Contains("/FileTypeAssociation"))
  9. {
  10. // 获取fileID (after "fileToken=").
  11. int fileIDIndex = tempUri.IndexOf("fileToken=") + 10;
  12. string fileID = tempUri.Substring(fileIDIndex);
  13. // 获取文件名.
  14. string incommingFileName = SharedStorageAccessManager.GetSharedFileName(fileID);
  15. // 获取文件后缀
  16. int extensionIndex = incommingFileName.LastIndexOf('.') + 1;
  17. string incommingFileType = incommingFileName.Substring(extensionIndex).ToLower();
  18. // 根据不同文件类型,跳转不同参数的地址
  19. switch (incommingFileType)
  20. {
  21. case "wx3b34a14b66641dfd":
  22. return new Uri("/DemoEntryPage.xaml?fileToken=" + fileID, UriKind.Relative);
  23. default:
  24. return new Uri("/MainPage.xaml", UriKind.Relative);
  25. }
  26. }
  27. else
  28. {
  29. return uri;
  30. }
  31. }
  32. }

case "wx3b34a14b66641dfd": 改成你的AppID。
/DemoEntryPage.xaml?fileToken=" 改成步骤[3]中继承WXEntryBasePage的Page的路径。

[5] 修改App.xaml.cs文件

然后在App.xaml.cs的InitializePhoneApplication()函数中,增加一行代码:

  1. // Assign the URI-mapper class to the application frame.
  2. RootFrame.UriMapper = new AssociationUriMapper();

[6] 添加支持微信的分享功能

  1. //分享到微信必须设置Title属性
  2. UmengLink link = new UmengLink();
  3. link.Url = @"http://v.yinyuetai.com/video/395495";
  4. link.Type = LinkType.Music;
  5. link.Author = "张学友";
  6. link.Title = "情书";
  7. link.Text = "Good music!";
  8. link.ThumbnailImage = image; //只对微信有效
  9. UmengClient umengClient = WeixinClient(Your_Umeng_App_Key, Your_WeiXin_AppId);
  10. var res = await _umengClient.ShareLinkAsync(link);

微信集成需要注意以下几点:

  • 在测试的时候,确保你安装的WP8的微信(4.0以上版本)
  • 不要在Demo的上修改来形成你的应用程序,因为如果其他人跟你一样做 ,你们的AppStore上的AppID是一样的。
  • 开发者的应用需要通过审核。开发者在申请应用必须要通过微信官网的审核才能进行调试.

6 开放平台地址列表

平台 地址
新浪微博 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
FaceBook https://developers.facebook.com
Twitter https://dev.twitter.com

7 进阶使用

如果上述文档不能满足您的分享需求,请移步至“详细集成文档”。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注