此示例演示如何在 ASP.NET 2.0 网站中使用 Skype 功能。根据 Skype 用户名和标准电话号码,在适当的字段中键入。六个 LinkButton 填充了 Skype 在网站中执行基本操作所需的字符串,这些操作包括:
通过 Skype 拨打 Skype 电话。
索取联系信息。
开始聊天。
通过 Skype 发送文件。
添加联系人。
拨打 Skype Out 电话。
创建此示例
我通过创建一个新的空网站开始此示例,选择“在网站下添加新项目”选项,然后选择一个新的 WebUserControl 添加到我的应用程序中,我将其称为 SkypeSample(它在创建后获得 .ascx 扩展名)。在此 WebsUserControl 上,我创建了以下控件:
具有 Text 属性 Skype Name 的标签
具有文本属性的标签 电话号码
ID 为 txtSkypeName 的文本框
ID 为 txtPhoneNr 的文本框
默认情况下名为 Button1 的按钮,其 Text 属性设置为 Populate
默认情况下,六个 LinkButton 称为 Linkbutton1...
六个标准类型图像,默认情况下称为 Image1...
此外,我在项目中添加了一个文件夹 Images,并从 Skype 网站下载了一组开发人员可以使用的图像(单击此处下载图像),并选择了我需要的按钮,并将它们添加到创建的图像映射中。我将控件 Image1 到 Image6 的路径设置为“图像”文件夹中的相应图像。
对于 Button1,我创建了一个名为 Populate_Click 的事件,以及将触发我稍后创建的 SetSkypeStatus 方法的以下代码。
//获取间谍状态
尝试
{
this.SetSkype();
}
抓住
{
//
}
最后
{
//
}
然后我单击 UserControl 转到隐藏代码,并创建一个名为 SetSkype 的方法以及应用程序所需的字符串。
protected void SetSkype()
{
//将网站上的图片设置为不可见
Image1.Visible = true;
Image2.Visible = true;
Image3.Visible = true;
Image4.Visible = true;
Image5.Visible = true;
Image6.Visible = true;
//创建将容纳的字符串
//所需的值和操作
string SkypeName = txtSkypeName.Text;
字符串 LandPhone = txtPhoneNr.Text;
字符串 PathSkypeStatusString = "";
字符串 SkypeAddContactString = "";
字符串 SkypeCallString = "";
字符串 SkypeLandCall = "";
字符串 SkypeChatString = "";
字符串 SkypeProfileString = "";
字符串 SkypeSendFileString = "";
为了用值填充字符串,我创建了 try 块。第一个块获取该方法触发后输入的 Skype 用户名的状态。正如您在下面的代码中看到的,我创建了三个字符串(s1、s2、sT);第一个 try 块中的三个中的最后一个代表字符串总数,因为我尝试创建一个可用于获取 Skype 联系人状态的字符串。如下所示,字符串的第一部分是一个 URL,说明要查找的位置以及要使用的图标。您可以将“mediumicon”一词更改为“largeicon”,然后将显示一个大图标。该块中的字符串 sT= 部分将字符串 sT 的实际值设置为我想要的字符串、要查找的路径以及我想要的状态的 Skype 用户名。然后将 sT 保存的值传递给上面创建的 PathSkypeStatusString;我将 PathSkypeStatusString 指定为 Image1 URL 的值,因此在运行时,该图像应显示一个带有用户当前状态的中等图标。
//获取间谍状态
尝试
{
字符串 s1 = " http://mystatus.skype.com/mediumicon/ ";
字符串 s2 = Skype 名称;
字符串 sT = s1 + s2;
PathSkypeStatusString = sT;
Image1.ImageUrl = PathSkypeStatusString;
}
抓住
{
//
}
最后
{
//
}
在下一部分中,我需要更多字符串,因为 Skype 用户名将位于字符串的中间,因此创建完整的字符串会稍微复杂一些。 s4 在此部分中很重要,因为这是将在运行时执行的操作,而 s6 则在 LinkButton 中可见的文本中。再次,我创建字符串 sT,将值传递给 SkypeCallString,并将 LinkButton1 的值设置为 SkypeCallString 的内容,因此在运行时,此 Linkbutton 将在单击时发起呼叫。在代码中,HREF 值没有结束标记,因为后来当我设置字符串 s6 的值时添加了该结束标记。
//设置呼叫字符串
尝试
{
//字符串s1 =“参见代码”;
字符串 s2 = "Skype:";
字符串 s3 = SkypeName;
字符串 s4 = "?调用";
字符串 s5 = '"'.ToString();
字符串 s6 = ">Skype 我";
字符串 sT = s1 + s2 + s3 + s4 + s5 + s6;
SkypeCallString = sT;
LinkButton1.Text = SkypeCallString;
}
抓住
{
//待办事项
}
最后
{
//待办事项
}
我对用户可以执行的所有操作重复此操作,将 LinkButton 的值设置为我希望它们执行的操作。很明显为什么不同的操作总是看起来像“呼叫”、“聊天”等。
运行示例代码
要运行示例代码,只需使用 Visual Studio 打开 SkypeSample 文件夹,在菜单选项“文件”、“打开”下,然后选择网站。应加载代码,当您按 F5 时,示例应用程序应运行。
进一步使用
当您将 Skype 用户名和电话号码存储在数据库中并在您的网站中显示这些值(例如使用数据源加载的 DetailControl)时,此示例很容易动态使用。当您将 Skype 用户名和电话号码设置为 DetailControl 的 DataKey 时,您可以使用它们在运行时保存的值来填充字符串(Skype 用户名和电话号码)。下面的示例显示了如何从 Skype 设置属性。
//动态设置SkypeName和SkypeLandCall字符串值
尝试
{
//设置字符串SkypeName
字符串 SkypeName = DetailsView1.DataKey["Skype"].ToString();
//设置字符串SkypeLandCall
string SkypeLandCall = DetailsView1.DataKey["CompanyPhone"].ToString();
}
抓住
{
//待办事项
}
最后
{
//待办事项
}
兴趣点
我并不是说代码是完美的,但它在我的笔记本电脑上运行良好。当我从本地服务器请求网站时,所有 Skype 选项都有效。 Skype 名称是 Skype Limited 的版权。