Windows Phone 8下 友盟社会化组件SDK2.0的使用。_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > Windows Phone 8下 友盟社会化组件SDK2.0的使用。

Windows Phone 8下 友盟社会化组件SDK2.0的使用。

 2014/11/24 13:24:42  汪小饭  程序员俱乐部  我要评论(0)
  • 摘要:由于项目的需要,要将友盟的社会化组件SDK由0.9更新至2.0.版本变化比较大。1、很多类以及命名空间已经取消了。如UmengSocialSDK.Net.Request命名空间,UmengSocial类等。2、微信会话和朋友圈已整合成一个。老版本两者分别是两个类,此处已经整合为一个。(WP8.1下暂时无法分享至微信、朋友圈)分享内容支持三种:Link链接、Text文字、Picture图片具体查看官方文档:http://dev.umeng.com/social/windows
  • 标签:SDK Windows 使用 社会化

由于项目的需要,要将友盟的社会化组件SDK由0.9更新至2.0. 版本变化比较大。

1、很多类以及命名空间已经取消了。

如UmengSocialSDK.Net.Request命名空间, UmengSocial类等。

2、微信会话和朋友圈已整合成一个。

老版本两者分别是两个类,此处已经整合为一个。(WP8.1下暂时无法分享至微信、朋友圈)

 

分享内容支持三种:Link链接、Text文字、Picture图片

具体查看官方文档:http://dev.umeng.com/social/windows-phone/share/detail-share 

对于各个分享,加入完整必须属性后,才能够分享成功,不然就无反应。(比如:分享图片,微信必须有Title和Image, 而其他平台不能要Title)

                          

                           UmengPicture类

成员新浪微博人人网腾讯微博QQ空间豆瓣微信 Loc (位置信息)可选      × Text (文本内容)可选       Title × × × × × Image √ √ √ √ √ √

 另外,无法实现将图片和文字同时分享到微信和朋友圈中。

(也就是说,图片分享至微信无法看到文字;链接分享到微信也只有一张可转到其他网页的图片,而无文字)

以新浪微博为例,分享屏幕截屏  (详细配置及其他事项的请参照官方说明文档):

SinaWeiboClient Sina = new SinaWeiboClient(DataBaseManager.AppYouMengKey);  //创建对象

private async void btnShare_Click(object sender, RoutedEventArgs e)  //点击分享按钮
{
  bool flag = await Sina.CheckLoggedin();  //判断是否已(登陆)授权
  if (flag)  //如果已授权,则直接分享
  {
    ShareImage();  //分享
  }
  //如果目标平台未授权则先授权再分享
  else
  {
    var rec = await Sina.LoginAsync();  //登陆,打开登陆授权页面
    if (rec.Status == LoginStatus.Success)  //登陆成功
    {
      ShareImage();
    }    
    else
    {
      MessageBox.Show("登陆失败");    
    }
  }
}

private async void ShareImage()  //分享图片
{
  var res = await Sina.SharePictureAsync(GetImageShare(), true);  //调用分享图片方法,isEditable = true 可编辑
  if (res.Status == ShareStatus.Success)  //分享成功
    MessageBox.Show("分享成功");
  else if (res.Status == ShareStatus.UserCanceled)  //用户退出分享界面
    return;
  else
    MessageBox.Show("分享失败");
}

private UmengPicture GetImageShare()  //返回值为UmengPicture类型
{
  WriteableBitmap writeableBitmap;
  writeableBitmap = ShotScreen();  //截屏

  MemoryStream stream = new MemoryStream();
  writeableBitmap.SaveJpeg(stream, writeableBitmap.PixelWidth,
  writeableBitmap.PixelHeight, 0, 100);
  
  UmengPicture picture = new UmengPicture(stream.ToArray(), "图片详细描述")  //image为数组
  {
    Text = "这是新浪分享的内容"            
  };
  /*
  if (SharePlatform == SharePlatform.Wechat)
    picture.Title = "图片分享";
  */
  return picture;
 }

private static BitmapSource ShotScreen()  //截屏
{             
  PhoneApplicationFrame frame = System.Windows.Application.Current.RootVisual as PhoneApplicationFrame;             
  PhoneApplicationPage page = frame.Content as PhoneApplicationPage;
  WriteableBitmap wBitmap = new WriteableBitmap((int)page.ActualWidth, (int)page.ActualHeight);             
   return wBitmap;         
}

private async void btnLogOut_Click(object sender, RoutedEventArgs e)  //登出
{
  
await Sina.LogoutAsync();  //貌似老版本没有登出的方法
}


PS: 我在退出后重进程序分享失败(已经是授权的情况下,分享报错OAuthExpired)

但是问了其他人,说是没问题的。我就不懂了。。

发表评论
用户名: 匿名