作者:hz--Ives | 来源:互联网 | 2023-09-16 15:25
SuperSocialShare(https:ssshare.codeplex.com)是一个面向中国的WindowsPhone8开发人员的社交分享SDK,封装了国内主流社
SuperSocialShare(https://ssshare.codeplex.com/)是一个面向中国的Windows
Phone
8开发人员的社交分享SDK,封装了国内主流社交平台(新浪微博、腾讯微博、人人网、开心网、搜狐微博、网易微博)的分享接口,让开发者实现应用内的一键分享变得更简单。
授权
>社交平台的分享都需要用户登录授权,SuperSocialShare对各大平台的OAuth2.0授权接口进行统一,开发者需要到相应的社交平台的开放平台上注册应用,获取应用的App
Key、App
Secret和CallbackUrl(回调地址,各个平台的回调地址注册方式不同,需要开发者细心)。
>首先在App中定义全局的SocialType和SocialClient;
alt=""
src="https://img.php1.cn/3cd4a/1eebe/cd5/d84f9786330d9e41.png"> ///
/// 获取或设置当前进行分享的社区
///
public static SocialClient CurrentClient { set; get; }
///
/// 获取或设置当前进行分享的社区类型
///
public static SocialType SocialType { set; get; }
alt=""
src="https://img.php1.cn/3cd4a/1eebe/cd5/d84f9786330d9e41.png"> >分享前先检查相应社区的授权是否可用,如果可用直接进入分享页面,如果未进行授权或者授权信息已经过期,则进入授权页面。
alt=""
src="https://img.php1.cn/3cd4a/1eebe/cd5/d84f9786330d9e41.png"> void process(SocialType type)
{
App.SocialType = type;
switch (type)
{
case SocialType.KaiXin:
App.CurrentClient = new KaixinClient();
break;
case SocialType.NetEase:
App.CurrentClient = new NetEaseClient();
break;
case SocialType.Renren:
App.CurrentClient = new RenrenClient();
break;
case SocialType.Sina:
App.CurrentClient = new SinaClient();
break;
case SocialType.SoHu:
App.CurrentClient = new SoHuClient();
break;
case SocialType.Tencent:
App.CurrentClient = new TencentClient();
break;
default:
break;
}
if (AuthorizeManager.IsAuthorizeValid(type))
{
NavigationService.Navigate(new Uri("/SharePage.xaml", UriKind.Relative));
}
else
NavigationService.Navigate(new Uri("/AuthorizePage.xaml", UriKind.Relative));
}
alt=""
src="https://img.php1.cn/3cd4a/1eebe/cd5/d84f9786330d9e41.png"> >授权页面上需要SuperSocialShare.Controls命名空间下的AuthorizeControl控件,并且后台代码中注册AuthorizeControl的AuthorizeCompleted事件。
alt=""
src="https://img.php1.cn/3cd4a/1eebe/cd5/d84f9786330d9e41.png"> AuthorizeControl.Client = App.CurrentClient;
AuthorizeControl.AuthorizeCompleted += AuthorizeControl_AuthorizeCompleted;
AuthorizeControl.BeginRequest();
void AuthorizeControl_AuthorizeCompleted(AsyncEventArgs e)
{
if (e.Error == null)
{
_authorizeSucceed = true;
Dispatcher.BeginInvoke(() =>
{
MessageBox.Show("Authorize Succeed!");
NavigationService.Navigate(new Uri("/SharePage.xaml", UriKind.Relative));
});
}
}
alt=""
src="https://img.php1.cn/3cd4a/1eebe/cd5/d84f9786330d9e41.png">
分享
>授权成功后进入分享页面,调用SocialClient的ShareText或者ShareTextWithImage进行分享。同时注册SocialClient的ShareCompleted事件,在事件的处理函数中查看分享是否成功或者查看分享失败的原因。
alt=""
src="https://img.php1.cn/3cd4a/1eebe/cd5/d84f9786330d9e41.png"> void CurrentClient_ShareCompleted(object sender, AsyncEventArgs e)
{
string tip = string.Empty;
if (e.Error == null)//分享成功
{
tip = "分享成功!";
}
else
{
tip = "分享失败,error:" + e.Error.Message;
}
Dispatcher.BeginInvoke(() =>
{
MessageBox.Show(tip);
});
}
alt=""
src="https://img.php1.cn/3cd4a/1eebe/cd5/d84f9786330d9e41.png"> 这里简单介绍了一下SuperSocialShare的用法,https://ssshare.codeplex.com/上有完整的Demo工程。
SuperSocialShare:Windows phone平台上的超级分享库,布布扣,bubuko.com