Dieses Beispiel zeigt, wie Sie Skype-Funktionen auf Ihrer ASP.NET 2.0-Website verwenden. Basierend auf dem Skype-Benutzernamen und der Standardtelefonnummer geben Sie die entsprechenden Felder ein. Sechs LinkButtons werden mit den Zeichenfolgen gefüllt, die Skype auf einer Website benötigt, um die grundlegenden Aktionen auszuführen, nämlich:
Einen Skype-Anruf über Skype tätigen.
Kontaktinformationen anfordern.
Starten Sie einen Chat.
Senden Sie eine Datei über Skype.
Fügen Sie einen Kontakt hinzu.
Führen Sie einen Skype-Anruf durch.
Dieses Beispiel wird erstellt
Ich habe mit diesem Beispiel begonnen, indem ich eine neue leere Website erstellt, die Option „Neues Element unter Website hinzufügen“ ausgewählt und ein neues WebUserControl zum Hinzufügen zu meiner Anwendung ausgewählt habe, das ich SkypeSample nannte (es erhält nach der Erstellung die Erweiterung „.ascx“). Auf diesem WebsUserControl habe ich die folgenden Steuerelemente erstellt:
Eine Beschriftung mit der Texteigenschaft Skype-Name
Ein Label mit der Texteigenschaft Phone Nr
Eine TextBox mit der ID txtSkypeName
Eine TextBox mit der ID txtPhoneNr
Eine Schaltfläche namens Button1, deren Text-Eigenschaft standardmäßig auf „Populate“ festgelegt ist
Sechs LinkButtons heißen standardmäßig Linkbutton1...
Sechs Bilder vom Standardtyp, standardmäßig Image1 genannt...
Darüber hinaus habe ich dem Projekt einen Ordner „Bilder“ hinzugefügt und eine Reihe von Bildern heruntergeladen, die Entwickler von der Skype-Website verwenden können (Klicken Sie hier, um die Bilder herunterzuladen), und habe die benötigten Schaltflächen ausgewählt und sie der erstellten Imagemap hinzugefügt. Ich habe den Pfad meiner Steuerelemente Image1 bis Image6 auf das entsprechende Bild in meinem Bilderordner festgelegt.
Für Button1 habe ich ein Ereignis namens Populate_Click und den folgenden Code erstellt, der die Methode SetSkypeStatus auslöst, die ich später erstellt habe.
//Spionagestatus abrufen
versuchen
{
this.SetSkype();
}
fangen
{
//
}
Endlich
{
//
}
Dann klickte ich auf das UserControl, um zum Code-Behind zu gelangen, und erstellte eine Methode namens SetSkype und die benötigten Strings für die Anwendung.
protected void SetSkype()
{
//Setzen Sie die Bilder auf der Website auf unsichtbar
Image1.Visible = true;
Image2.Visible = true;
Image3.Visible = true;
Image4.Visible = true;
Image5.Visible = true;
Image6.Visible = true;
//Erstelle die Strings, die enthalten sein sollen
//die benötigten Werte und Aktionen
string SkypeName = txtSkypeName.Text;
string LandPhone = txtPhoneNr.Text;
string PathSkypeStatusString = "";
string SkypeAddContactString = "";
string SkypeCallString = "";
string SkypeLandCall = "";
string SkypeChattString = "";
string SkypeProfileString = "";
string SkypeSendFileString = "";
Um die Strings mit Werten zu füllen, habe ich Try-Blöcke erstellt. Der erste Block ruft den Status des Skype-Benutzernamens ab, der nach dem Auslösen der Methode eingegeben wird. Wie Sie im Code unten sehen können, habe ich drei Zeichenfolgen erstellt (s1, s2, sT); Der letzte der drei im ersten Try-Block steht für die Zeichenfolge total, da ich versucht habe, eine Zeichenfolge zu erstellen, mit der ich den Status des Skype-Kontakts ermitteln kann. Wie Sie unten sehen können, ist der erste Teil der Zeichenfolge eine URL, die angibt, wo gesucht werden muss und welches Symbol verwendet werden soll. Sie können das Wort „mediumicon“ beispielsweise in „largeicon“ ändern, dann wird ein großes Symbol angezeigt. Der Teil „string sT=“ in diesem Block setzt den tatsächlichen Wert des Strings sT auf den gewünschten String, den zu suchenden Pfad und den Skype-Benutzernamen, dessen Status ich sehen möchte. Der Wert, den sT enthält, wird dann an den oben erstellten PathSkypeStatusString übergeben. und ich weise PathSkypeStatusString als Wert der Image1-URL zu, sodass dieses Bild zur Laufzeit ein mittleres Symbol mit dem aktuellen Status des Benutzers anzeigen sollte.
//Spionagestatus abrufen
versuchen
{
string s1 = " http://mystatus.skype.com/mediumicon/ ";
string s2 = SkypeName;
Zeichenfolge sT = s1 + s2;
PathSkypeStatusString = sT;
Image1.ImageUrl = PathSkypeStatusString;
}
fangen
{
//
}
Endlich
{
//
}
Im nächsten Teil benötige ich weitere Zeichenfolgen, da der Skype-Benutzername in der Mitte der Zeichenfolge steht und das Erstellen der vollständigen Zeichenfolge daher etwas komplizierter ist. s4 ist in diesem Teil wichtig, da dies die Aktion ist, die zur Laufzeit ausgeführt wird, und s6 im Text, der im LinkButton sichtbar ist. Auch hier erstelle ich die Zeichenfolge sT, übergebe den Wert an SkypeCallString und setze den Wert von LinkButton1 auf den Inhalt von SkypeCallString, sodass dieser Linkbutton zur Laufzeit den Anruf einleitet, wenn darauf geklickt wird. Im Code wird der HREF-Wert ohne schließendes Tag angezeigt, da dieses später hinzugefügt wird, wenn ich den Wert der Zeichenfolge s6 festlege.
//CallString festlegen
versuchen
{
//string s1 = "siehe Code";
string s2 = "skype:";
string s3 = SkypeName;
string s4 = "?call";
string s5 = '"'.ToString();
string s6 = ">Skype Me";
Zeichenfolge sT = s1 + s2 + s3 + s4 + s5 + s6;
SkypeCallString = sT;
LinkButton1.Text = SkypeCallString;
}
fangen
{
//Todo
}
Endlich
{
//Todo
}
Ich wiederhole dies für alle Aktionen, die vom Benutzer ausgeführt werden können, und setze die Werte der LinkButtons auf die Aktionen, die sie ausführen sollen. Es ist klar, warum die verschiedenen Aktionen immer wie „Anrufen“, „Chat“ usw. aussehen.
Ausführen des Beispielcodes
Um den Beispielcode auszuführen, öffnen Sie einfach den SkypeSample-Ordner mit Visual Studio, wählen Sie im Menü „Datei“ „Öffnen“ und wählen Sie die Website aus. Der Code sollte geladen werden und wenn Sie F5 drücken, sollte die Beispielanwendung ausgeführt werden.
Weiterverwendung
Dieses Beispiel lässt sich einfach dynamisch verwenden, wenn Sie den Skype-Benutzernamen und die Telefonnummer in einer Datenbank speichern und diese Werte auf Ihrer Website präsentieren, beispielsweise mit einem DetailControl, das Sie mit einer Datenquelle laden. Wenn Sie den Skype-Benutzernamen und die Telefonnummer als Datenschlüssel für das DetailControl festlegen, können Sie die Werte, die sie zur Laufzeit enthalten, zum Auffüllen der Zeichenfolgen (Skype-Benutzername und Telefonnummer) verwenden. Nachfolgend finden Sie ein Beispiel, das zeigt, wie Sie die Eigenschaften über Skype festlegen können.
//Stringwerte für SkypeName und SkypeLandCall dynamisch festlegen
versuchen
{
//String SkypeName festlegen
string SkypeName = DetailsView1.DataKey["Skype"].ToString();
//String SkypeLandCall festlegen
string SkypeLandCall = DetailsView1.DataKey["CompanyPhone"].ToString();
}
fangen
{
//Todo
}
Endlich
{
//Todo
}
Sehenswürdigkeiten
Ich sage nicht, dass der Code perfekt ist, aber er funktioniert gut auf meinem Laptop. Wenn ich die Website von meinem lokalen Server anfordere, funktionieren alle Skype-Optionen. Der Name Skype unterliegt dem Urheberrecht von Skype Limited.