В этом примере показано, как использовать функции Skype на веб-сайте ASP.NET 2.0. На основе имени пользователя Skype и стандартного номера телефона вы вводите соответствующие поля. Шесть кнопок LinkButton заполнены строками, которые нужны Skype на веб-сайте для выполнения основных действий, а именно:
Сделать звонок в Skype через Skype.
Запросите контактную информацию.
Начать чат.
Отправьте файл через Skype.
Добавьте контакт.
Вызовите Skype Out.
Создание этого образца
Я начал этот пример с создания нового пустого веб-сайта, выбрал параметр «Добавить новый элемент на веб-сайте» и выбрал новый элемент управления WebUserControl для добавления в свое приложение, которое я назвал SkypeSample (после создания он получает расширение .ascx). В этом WebsUserControl я создал следующие элементы управления:
Метка со свойством Text Имя Skype.
Метка со свойством Text Номер телефона
Текстовое поле с идентификатором txtSkypeName.
Текстовое поле с идентификатором txtPhoneNr
Кнопка с именем Button1 по умолчанию со свойством Text, установленным в значение «Заполнить».
Шесть кнопок LinkButton по умолчанию называются Linkbutton1...
Шесть изображений стандартного типа, по умолчанию называемых Image1...
Далее я добавил в проект папку «Изображения», загрузил с сайта Skype набор изображений, которые могут использовать разработчики (нажмите здесь, чтобы загрузить изображения), выбрал нужные мне кнопки и добавил их в созданную карту изображений. Я установил путь к элементам управления Image1 — Image6 к соответствующему изображению в папке «Изображения».
Для Button1 я создал событие Populate_Click и следующий код, который запускает метод SetSkypeStatus, который я создал позже.
//Получить статус шпиона
пытаться
{
это.SetSkype();
}
ловить
{
//
}
окончательно
{
//
}
Затем я щелкнул UserControl, чтобы перейти к выделенному коду, и создал метод SetSkype и необходимые строки для приложения.
защищенная пустота SetSkype()
{
//Сделаем изображения на сайте невидимыми
Изображение1.Видимый = правда;
Изображение2.Видимый = правда;
Изображение3.Видимый = правда;
Изображение4.Видимый = правда;
Изображение5.Видимый = правда;
Изображение6.Видимый = правда;
//Создаем строки, которые будут содержать
//необходимые значения и действия
string SkypeName = txtSkypeName.Text;
строка LandPhone = txtPhoneNr.Text;
строка PathSkypeStatusString = "";
строка SkypeAddContactString = "";
строка SkypeCallString = "";
строка SkypeLandCall = "";
строка SkypeChattString = "";
строка SkypeProfileString = "";
строка SkypeSendFileString = "";
Чтобы заполнить строки значениями, я создал блоки try. Первый блок получает статус имени пользователя Skype, введенного после запуска метода. Как вы можете видеть в приведенном ниже коде, я создал три строки (s1, s2, sT); последний из трех в первом блоке попытки обозначает общее количество строк, поскольку я пытался создать строку, которую можно использовать для получения статуса контакта Skype. Как вы можете видеть ниже, первая часть строки представляет собой URL-адрес, в котором указано, где искать и какой значок использовать. Вы можете изменить слово «mediumicon», например, на «largeicon», и будет показан большой значок. Часть строки sT= в этом блоке устанавливает фактическое значение строки sT в нужную мне строку, путь для поиска плюс имя пользователя Skype, статус которого я хочу получить. Значение, которое хранит sT, затем передается в созданную выше PathSkypeStatusString; и я назначаю PathSkypeStatusString в качестве значения URL-адреса Image1, поэтому во время выполнения на этом изображении должен отображаться средний значок с текущим статусом пользователя.
//Получить статус шпиона
пытаться
{
строка s1 = " http://mystatus.skype.com/mediumicon/ ";
строка s2 = имя Skype;
строка сТ = с1 + с2;
PathSkypeStatusString = sT;
Image1.ImageUrl = PathSkypeStatusString;
}
ловить
{
//
}
окончательно
{
//
}
В следующей части мне понадобится больше строк, поскольку имя пользователя Skype будет находиться в середине строки, поэтому создание полной строки немного сложнее. s4 важен в этой части, поскольку это действие будет выполняться во время выполнения, а s6 — в тексте, который будет виден в LinkButton. Я снова создаю строку sT, передаю значение SkypeCallString и устанавливаю значение LinkButton1 в содержимое SkypeCallString, поэтому во время выполнения эта кнопка Link инициирует вызов при нажатии. В коде значение HREF отображается без закрывающего тега, поскольку он добавляется позже, когда я устанавливаю значение строки s6.
//Устанавливаем строку вызова
пытаться
{
//строка s1 = "см. код";
строка s2 = «Скайп:»;
строка s3 = имя Skype;
строка s4 = "? вызов";
строка s5 = '"'.ToString();
string s6 = ">Напишите мне в Skype";
строка sT = s1 + s2 + s3 + s4 + s5 + s6;
SkypeCallString = СТ;
LinkButton1.Text = SkypeCallString;
}
ловить
{
//Тодо
}
окончательно
{
//Тодо
}
Я повторяю это для всех действий, которые может выполнить пользователь, устанавливая значения LinkButtons для действий, которые я хочу, чтобы они выполняли. Понятно, почему различные действия всегда выглядят как «звонок», «чат» и т. д.
Запуск примера кода
Чтобы запустить пример кода, просто откройте папку SkypeSample с помощью Visual Studio, выберите пункт меню «Файл», «Открыть» и выберите веб-сайт. Код должен загрузиться, и когда вы нажмете F5, должен запуститься пример приложения.
Дальнейшее использование
Этот пример легко использовать динамически, когда вы сохраняете имя пользователя и номер телефона Skype в базе данных и представляете эти значения на своем веб-сайте, например, с помощью элемента управления DetailControl, который вы загружаете вместе с источником данных. Когда вы устанавливаете имя пользователя Skype и номер телефона в качестве DataKeys для DetailControl, вы можете использовать значения, которые они содержат во время выполнения, для заполнения строк (имя пользователя Skype и номер телефона). Ниже приведен пример, показывающий, как можно установить свойства из Skype.
//Динамически устанавливаем строковые значения SkypeName и SkypeLandCall
пытаться
{
//Устанавливаем строку SkypeName
строка SkypeName = DetailsView1.DataKey["Skype"].ToString();
//Устанавливаем строку SkypeLandCall
строка SkypeLandCall = DetailsView1.DataKey["CompanyPhone"].ToString();
}
ловить
{
//Тодо
}
окончательно
{
//Тодо
}
Достопримечательности
Я не говорю, что код идеален, но на моем ноутбуке он работает хорошо. Когда я запрашиваю веб-сайт со своего локального сервера, все параметры Skype работают. Авторские права на название Skype принадлежат Skype Limited.