【Win10 UWP】QQ SDK(一):SDK基本使用方法
每当开发一个应用需要社交分享的应用时,总是心里咯噔一下:到底什么时候分享能加上QQ和微信?除了WP8.0版本的微信SDK,官方似乎从未正面发布过适应时代发展的QQ SDK,就连后台,也没有一个可以创建WP应用的入口(其实WP QQ团队很早就已经在开发WP版的QQ SDK,只是网站那边一直没人管上线这事,具体你也懂)。
吐槽完毕。
作为一个长期以来,致力于散播温暖,散播希望的小清新无公害WP开发者,今天又要给广大WP开发者传播希望了。博主拿到了非正式版的QQ SDK,并且做了一些封装,仅供学习交流。开始我们今天的主题”QQ SDK“,以下以Win10 UWP作为例子说明使用方法。
1. 安装ConnectQQ SDK博主拿到的SDK是散件,自己写了个nuget合成一个神装。由于SDK是C++写的,需要将你的项目设置成x86、x64或ARM进行调试,这个nuget作用就是实现在你进行架构切换时,在build过程中自动引用正确的dll。
通过nuget下载并安装QQ SDK,链接:https://www.nuget.org/packages/ConnectQQSDK/1.4.0
或者在控制台输入PM> Install-Package ConnectQQSDK
QQ SDK的作用是使我们在自己的代码里能将QQ客户端呼起来,并作相应的操作。
注意:引用完成后,需要先Unload一下项目再重新Reload,或者重启一下VS。
2. 申请QQ互联应用Id到QQ互联官网: 创建应用,获得一个AppId
3. 配置Package.appxmanifest文件QQ SDK使用文件类型关联和协议关联混合模式来进行应用间互调通信,那么需要进入Package.appxmanifest文件进行相关配置。
在<Applications>节点中的<Application>节点下,添加一个<Extensions>节点,分别添加windows.fileTypeAssociation和windows.protocol两个声明:
<Extensions> <uap:Extension Category="windows.fileTypeAssociation"> <uap:FileTypeAssociation Name="test"> <uap:SupportedFileTypes> <uap:FileType ContentType="application/qqsdkconnect">.qc-xxxxxxxxxx</uap:FileType> </uap:SupportedFileTypes> </uap:FileTypeAssociation> </uap:Extension> <uap:Extension Category="windows.protocol"> <uap:Protocol Name="qc-xxxxxxxxxx" /> </uap:Extension> </Extensions>
注意:把其中的xxxxxxxx替换成你自己的AppId。
至于什么时候通过文件类型,什么时候通过协议进行互调,我们在下一讲会具体说明。
4. 初始化SDK在App.cs的OnLaunched和OnActivated方法的适当位置进行初始化,SDK提供一个静态的QQSDK实例进行管理,调用其Initialize方法初始化,传递第3步获取的AppId作为参数:
QQSDK.Instance.Initialize("xxxxxxxxxx");
5. 调用SDK的分享方法 (1) 分享到QQQQSDK类的ShareToQQ方法用来分享数据到QQ客户端,支持分享到QQ好友、群、讨论组等,如图:
ShareToQQ有两个重载方法:ShareToQQ(ShareToQQDefaultModel model) 和 ShareToQQ(ShareToQQImageModel model),分别表示分享图文消息和分享纯图片消息。
首先看ShareToQQDefaultModel,分享图文消息
public sealed class ShareToQQDefaultModel : __IShareToQQDefaultModelPublicNonVirtuals { public ShareToQQDefaultModel(); public byte[] ImageData { get; set; } public string ImageUrl { get; set; } public ShareToQQKeyType KeyType { get; set; } public string Summary { get; set; } public string TargetUrl { get; set; } public string Title { get; set; } }
字段含义不多解释,注意其中ImageUrl和ImageData,前者用于图片链接数据,后者用于图片流数据,调用时二者不要同时设置。
private async void ShareButton_OnClick(object sender, RoutedEventArgs e)
{
await QQSDK.Instance.ShareToQQ(new ShareToQQDefaultModel
{
KeyType = ShareToQQKeyType.Default,
Title = "test title",
Summary = "test summary",
ImageUrl = "",
TargetUrl = ""
});
}
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/69489.html