友盟+搜索

{{errorMsg}}

产品概述

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

支持的社交平台及功能对照表

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

注意:

1.WindowsPhone8.1暂不支持微信,Facebook,Twitter(Silverlight8.0及Silverlight8.1支持)。
2.本文示例代码均针对最新版SDK,如果你所用SDK的类名或方法名与此文不符合,请使用你所用SDK的随包文档、或者下载使用最新版SDK。

获取友盟Appkey

  • 如果你之前已经在友盟注册了应用,并获取到了Appkey,可以继续使用它。

  • 如果你尚未在友盟注册开发者账号,需要先注册,注册之后登录你的账号,点击**添加新应用**,填写完应用基本信息后,将进入"下载SDK并添加代码"页面,此页面即可得到Appkey

集成SDK

安装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 |

声明功能

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

  • ID_CAP_NETWORKING:连接网络
  • ID_CAP_IDENTITY_DEVICE:获取设备标识
  • ID_CAP_LOCATION:定位

添加分享功能

//首先声明命名空间
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

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

修改WMAppManifest.xml

右键点击应用的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,这个务必要写对,不然微信拉不起你的应用。

编写微信入口Page类

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

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

继承系统的UriMapperBase类

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文件

然后在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
FaceBook https://developers.facebook.com
Twitter https://dev.twitter.com

进阶使用

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