


Verwendung von WPF zur Implementierung mehrerer Kundendienstfunktionen ?ffentlicher WeChat-Konten
Mar 05, 2017 pm 02:16 PMOriginaltitel: Verwendung von WPF zur Implementierung mehrerer Kundendienstfunktionen für ?ffentliche WeChat-Konten
Einführung:
Dies wird durch die Verwendung von WPF erreicht als Front-End-Technologie Desktop-Version des WeChat-Mehrkundenservicesystems. Das Projekt verwendet Prism als Front-End-Framework, verwendet das MVVM-Modell, um die Benutzeroberfl?che und den Logikcode perfekt zu trennen, und verwendet den in MefBootstrapper integrierten MEF-IOC-Container, um jedes Modulobjekt zu entkoppeln. Sinnvoller Einsatz von IEventAggregator zur Implementierung von Ereignissen und Interaktionen. Der Artikel gibt relevante Implementierungshinweise bei der Einführung der entsprechenden Funktionen. Leser k?nnen auf Verbesserungen verweisen und diese in ihre eigenen Projekte einbringen.
Programmausführungsoberfl?che und Funktionsvorschau:
1. Anmelden:
Funktion: Unterstützt das Merken von Benutzern und Benutzereinstellungen, mit der Option, sich Benutzerkennw?rter zu merken.
Implementierungsbezogen:
Anmeldefenster anpassen und Microsoft.Windows.Shell einführen. Zugeh?rige benutzerdefinierte Fensterimplementierungen finden Sie in der WPF Custom Chrome Library und der MSDN WindowChrome Class.
Informationen zur Implementierung der Schaltfl?chenfunktionen ?Minimieren“, ?Maximieren“ und ?Schlie?en“ finden Sie im obigen Beispiel.
Anmeldeschaltfl?che, Stil anpassen, Button-Vorlage neu schreiben, der Referenzcode lautet wie folgt:
?<Style x:Key="LogginButton" TargetType="{x:Type Button}"> ????????<Setter Property="Template"> ????????????<Setter.Value> ????????????????<ControlTemplate TargetType="{x:Type Button}"> ????????????????????<Grid > ????????????????????????<Border x:Name="Bd" Background="{TemplateBinding Background }" BorderBrush="#d3d3d3" BorderThickness="1"> ????????????????????????</Border> ????????????????????????<ContentPresenter x:Name="contentPresenter" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" RecognizesAccessKey="True"/> ????????????????????</Grid> ????????????????????<ControlTemplate.Triggers> ????????????????????????<Trigger Property="IsMouseOver" Value="True"> ????????????????????????????<Setter TargetName="Bd" Property="BorderBrush" Value="#08bd14"/> ????????????????????????????<Setter TargetName="Bd" Property="Opacity" Value="0.8"/> ????????????????????????</Trigger> ????????????????????????<Trigger Property="IsPressed" Value="True"> ????????????????????????????<Setter TargetName="Bd" Property="Background" Value="#f3f3f3"/> ????????????????????????????<Setter TargetName="contentPresenter" Property="Margin" Value="2,2,0,0"/> ????????????????????????</Trigger> ????????????????????</ControlTemplate.Triggers> ????????????????</ControlTemplate> ????????????</Setter.Value> ????????</Setter> ????</Style>
Code anzeigen
Merken Sie sich das Passwort und verwenden Sie XmlSerializer, um Benutzerinformationen in die lokale XML-Konfigurationsdatei zu serialisieren, wenn das Programm Load startet die XML-Konfigurationsdatei. Verwendung MSDN, schnelle Antwort
RichTextBox-bezogene Implementierung: Alle Eingaben von Text, Ausdrücken und Bildern werden in Rich-Text-Feldern implementiert, daher ist die Eingabe für das TextChanged-Ereignis verarbeitet Führen Sie eine Reihe von Behandlungen durch.
Text: Es ist keine Verarbeitung erforderlich.
Emoticon: Geben Sie das Escape-Symbol des Emoticons in das Textfeld ein, suchen Sie dann anhand des Escape-Symbols das entsprechende Emoticon-Bild und ersetzen Sie es. InlineUIContainer
Dynamische GIF-Grafiken: GIF wird in WPF nicht unterstützt, daher müssen Sie ein benutzerdefiniertes Benutzersteuerelement schreiben, um GIF-Ausdrücke anzuzeigen.
Siehe Zhou Yinhui
[WPF-Problem] Dynamisches GIF in WPF anzeigenScreenshot-Funktion: Der Quellcode war online gefunden, ist ein Screenshot von Winform. Einige kleinere ?nderungen vorgenommen und in das Projekt eingeführt. Referenz: C# realisiert voll funktionsf?hige Screenshot-Steuerung (4) – Vollversion http://ipnx.cn/
3
Code anzeigen
????<Style x:Key="CustomerTabStyle" TargetType="{x:Type TabControl}"> ????????<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/> ????????<Setter Property="Padding" Value="4,4,4,4"/> ????????<Setter Property="Background" Value="#F9F9F9"/> ????????<Setter Property="HorizontalContentAlignment" Value="Center"/> ????????<Setter Property="VerticalContentAlignment" Value="Center"/> ????????<Setter Property="Template"> ????????????<Setter.Value> ????????????????<ControlTemplate TargetType="{x:Type TabControl}"> ????????????????????<Grid ClipToBounds="true" SnapsToDevicePixels="true" KeyboardNavigation.TabNavigation="Local"> ????????????????????????<Grid.ColumnDefinitions> ????????????????????????????<ColumnDefinition x:Name="ColumnDefinition0"/> ????????????????????????????<ColumnDefinition x:Name="ColumnDefinition1" Width="0"/> ????????????????????????</Grid.ColumnDefinitions> ????????????????????????<Grid.RowDefinitions> ????????????????????????????<RowDefinition x:Name="RowDefinition0" Height="Auto"/> ????????????????????????????<RowDefinition x:Name="RowDefinition1" Height="*"/> ????????????????????????</Grid.RowDefinitions> ????????????????????????<TabPanel x:Name="HeaderPanel" Grid.Column="0" Background="#f6f6f6" IsItemsHost="true" Grid.Row="0" KeyboardNavigation.TabIndex="1" Panel.ZIndex="1"/> ????????????????????????<Border x:Name="ContentPanel" Background="{TemplateBinding Background}" Grid.Column="0" KeyboardNavigation.DirectionalNavigation="Contained" Grid.Row="1" KeyboardNavigation.TabIndex="2" KeyboardNavigation.TabNavigation="Local"> ????????????????????????????<ContentPresenter x:Name="PART_SelectedContentHost" ContentSource="SelectedContent" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/> ????????????????????????</Border> ????????????????????</Grid> ????????????????????<ControlTemplate.Triggers> ????????????????????????<Trigger Property="IsEnabled" Value="false"> ????????????????????????????<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/> ????????????????????????</Trigger> ????????????????????</ControlTemplate.Triggers> ????????????????</ControlTemplate> ????????????</Setter.Value> ????????</Setter> ????</Style> ????<Style x:Key="ConnectedTabItemStyle" TargetType="{x:Type TabItem}"> ????????<Setter Property="Foreground" Value="Black"/> ????????<Setter Property="Padding" Value="20,8,20,0"/> ????????<Setter Property="BorderBrush" Value="Transparent"/> ????????<Setter Property="Background" Value="#b9c0cc"/> ????????<Setter Property="HorizontalContentAlignment" Value="Stretch"/> ????????<Setter Property="VerticalContentAlignment" Value="Stretch"/> ????????<Setter Property="Template"> ????????????<Setter.Value> ????????????????<ControlTemplate TargetType="{x:Type TabItem}"> ????????????????????<Grid SnapsToDevicePixels="true"> ????????????????????????<Border x:Name="Bd" Background="#f6f6f6" Padding="{TemplateBinding Padding}"> ????????????????????????????<StackPanel> ????????????????????????????????<Path Width="18" Height="18" Stretch="Fill" Fill="{TemplateBinding Background}" Data="F1 M 38,19C 43.5417,19 45.9167,22.1667 45.1174,28.8134C 45.8315,29.2229 46.3125,29.9928 46.3125,30.875C 46.3125,31.9545 45.5923,32.8658 44.6061,33.1546C 44.1941,34.623 43.5543,35.9229 42.75,36.9628L 42.75,41.9583C 45.3889,42.4861 47.5,42.75 50.6667,44.3333C 53.8333,45.9167 54.8889,47.3681 57,49.4792L 57,57L 19,57L 19,49.4792C 21.1111,47.3681 22.1667,45.9167 25.3333,44.3333C 28.5,42.75 30.6111,42.4861 33.25,41.9583L 33.25,36.9628C 32.4457,35.9229 31.8059,34.623 31.3939,33.1546C 30.4077,32.8658 29.6875,31.9545 29.6875,30.875C 29.6875,29.9928 30.1685,29.2229 30.8826,28.8134C 30.0833,22.1667 32.4583,19 38,19 Z "/> ????????????????????????????????<Border HorizontalAlignment="Center" x:Name="BottomBd" Margin="-6,-6,0,0" Visibility="Hidden"> ????????????????????????????????????<Path Fill="#e1e1e1" Data="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z" /> ????????????????????????????????</Border> ????????????????????????????</StackPanel> ????????????????????????</Border> ????????????????????</Grid> ????????????????????<ControlTemplate.Triggers> ????????????????????????<Trigger Property="IsMouseOver" Value="true"> ????????????????????????????<Setter Property="Background" TargetName="Bd" Value="#ededef"/> ????????????????????????</Trigger> ????????????????????????<Trigger Property="IsSelected" Value="true"> ????????????????????????????<Setter Property="Panel.ZIndex" Value="1"/> ????????????????????????????<Setter Property="Background" TargetName="Bd" Value="#ffffff"/> ????????????????????????????<Setter Property="Background" Value="#08bd14"/> ????????????????????????????<Setter Property="Visibility" TargetName="BottomBd" Value="Visible"/> ????????????????????????</Trigger> ????????????????????????<MultiTrigger> ????????????????????????????<MultiTrigger.Conditions> ????????????????????????????????<Condition Property="IsSelected" Value="false"/> ????????????????????????????????<Condition Property="IsMouseOver" Value="true"/> ????????????????????????????</MultiTrigger.Conditions> ????????????????????????????<Setter Property="BorderBrush" TargetName="Bd" Value="#ffffff"/> ????????????????????????</MultiTrigger> ????????????????????</ControlTemplate.Triggers> ????????????????</ControlTemplate> ????????????</Setter.Value> ????????</Setter> ????</Style>
4. Schnellantwortfeld
Wenden Sie TreeView plus HierarchicalDataTemplate an, um eine Baumliste zu implementieren.
5. Kunden übertragen
Passen Sie das Fenster ?Kunden übertragen“ an. Der Stil des XAML-Codes lautet wie folgt folgt:
<Style x:Key="NoResize_Window" TargetType="{x:Type Window}"> ????????????????????????<Setter Property="FontFamily" Value="Consolas,Microsoft YaHei" /> ????????????????????????<Setter Property="ResizeMode" Value="CanMinimize" /> ????????????????????????<Setter Property="Template"> ????????????????????????????<Setter.Value> ????????????????????????????????<ControlTemplate TargetType="{x:Type Window}"> ????????????????????????????????????<Grid> ????????????????????????????????????????<Grid.RowDefinitions> ????????????????????????????????????????????<RowDefinition Height="30" /> ????????????????????????????????????????????<RowDefinition Height="*" /> ????????????????????????????????????????</Grid.RowDefinitions> ????????????????????????????????????????<Border Grid.Row="0" > ????????????????????????????????????????????<Border.Background> ????????????????????????????????????????????????<LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> ????????????????????????????????????????????????????<GradientStop Color="#494A52" Offset="0"/> ????????????????????????????????????????????????????<GradientStop Color="#45464f" Offset="1"/> ????????????????????????????????????????????????</LinearGradientBrush> ????????????????????????????????????????????</Border.Background> ????????????????????????????????????????????<Grid> ????????????????????????????????????????????????<!--Icon and Title--> ????????????????????????????????????????????????<DockPanel > ????????????????????????????????????????????????????<TextBlock Margin="12,0,0,0" Text="{TemplateBinding Title}" FontFamily="Calibri" VerticalAlignment="Center" Foreground="#FFFFFF" /> ????????????????????????????????????????????????????<StackPanel HorizontalAlignment="Right" Orientation="Horizontal" VerticalAlignment="Top"> ????????????????????????????????????????????????????????<ctrl:MinAndCloseCaptionButton></ctrl:MinAndCloseCaptionButton> ????????????????????????????????????????????????????</StackPanel> ????????????????????????????????????????????????</DockPanel> ????????????????????????????????????????????</Grid> ????????????????????????????????????????</Border> ????????????????????????????????????????<Grid Grid.Row="1" > ????????????????????????????????????????????<Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Margin}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" > ????????????????????????????????????????????????<ContentPresenter /> ????????????????????????????????????????????</Border> ????????????????????????????????????????</Grid> ????????????????????????????????????</Grid> ????????????????????????????????</ControlTemplate> ????????????????????????????</Setter.Value> ????????????????????????</Setter> ????????????????????</Style>
View Code
轉(zhuǎn)接客戶列表,樣式Xaml代碼如下:
????<Style x:Key="OnlineUserListBoxStyle" TargetType="{x:Type ListBox}"> ????????<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/> ????????<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/> ????????<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/> ????????<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/> ????????<Setter Property="ScrollViewer.CanContentScroll" Value="true"/> ????????<Setter Property="ScrollViewer.PanningMode" Value="Both"/> ????????<Setter Property="Stylus.IsFlicksEnabled" Value="False"/> ????????<Setter Property="VerticalContentAlignment" Value="Center"/> ????????<Setter Property="Template"> ????????????<Setter.Value> ????????????????<ControlTemplate TargetType="{x:Type ListBox}"> ????????????????????<Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="1" SnapsToDevicePixels="true"> ????????????????????????<DockPanel> ????????????????????????????<Border BorderBrush="#dbdbdb" BorderThickness="0,0,0,1" DockPanel.Dock="Top"> ????????????????????????????????<Grid Background="#f6f6f6" TextElement.Foreground="#999999" DockPanel.Dock="Top"> ????????????????????????????????????<Grid.ColumnDefinitions> ????????????????????????????????????????<ColumnDefinition Width="*" /> ????????????????????????????????????????<ColumnDefinition Width="*"/> ????????????????????????????????????????<ColumnDefinition Width="*"/> ????????????????????????????????????</Grid.ColumnDefinitions> ????????????????????????????????????<TextBlock Margin="5,7,0,6" Grid.Column="0">狀態(tài)</TextBlock> ????????????????????????????????????<TextBlock Margin="5,7,0,6" Grid.Column="1">工號(hào)</TextBlock> ????????????????????????????????????<TextBlock Margin="5,7,0,6" Grid.Column="2">昵稱</TextBlock> ????????????????????????????????</Grid> ????????????????????????????</Border> ????????????????????????????<ScrollViewer Focusable="false" Padding="{TemplateBinding Padding}"> ????????????????????????????????<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/> ????????????????????????????</ScrollViewer> ????????????????????????</DockPanel> ????????????????????</Border> ????????????????????<ControlTemplate.Triggers> ????????????????????????<Trigger Property="IsEnabled" Value="false"> ????????????????????????????<Setter Property="Background" TargetName="Bd" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"/> ????????????????????????</Trigger> ????????????????????</ControlTemplate.Triggers> ????????????????</ControlTemplate> ????????????</Setter.Value> ????????</Setter> ????</Style> ????<Style x:Key="OnlineUserListBoxItemStyle" TargetType="{x:Type ListBoxItem}"> ????????<Setter Property="Background" Value="Transparent"/> ????????<Setter Property="HorizontalContentAlignment" Value="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/> ????????<Setter Property="VerticalContentAlignment" Value="{Binding VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/> ????????<Setter Property="Padding" Value="2,0,0,0"/> ????????<Setter Property="Template"> ????????????<Setter.Value> ????????????????<ControlTemplate TargetType="{x:Type ListBoxItem}"> ????????????????????<Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true"> ????????????????????????<Grid> ????????????????????????????<Grid.ColumnDefinitions> ????????????????????????????????<ColumnDefinition Width="*" /> ????????????????????????????????<ColumnDefinition Width="*"/> ????????????????????????????????<ColumnDefinition Width="*"/> ????????????????????????????</Grid.ColumnDefinitions> ????????????????????????????<StackPanel Grid.Column="0" Orientation="Horizontal" > ????????????????????????????????<Border Margin="4,2,4,2" Height="24" Width="24" > ????????????????????????????????????<Grid> ????????????????????????????????????????<Path Fill="#6f6f6f" Data="M6,17C6,15 10,13.9 12,13.9C14,13.9 18,15 18,17V18H6M15,9A3,3 0 0,1 12,12A3,3 0 0,1 9,9A3,3 0 0,1 12,6A3,3 0 0,1 15,9M3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3H5C3.89,3 3,3.9 3,5Z" /> ????????????????????????????????????????<Path Visibility="{Binding Path=IsOnLine,Converter={StaticResource BoolToVisibilityConverter}}" Fill="#8bc34a" Data="M6,17C6,15 10,13.9 12,13.9C14,13.9 18,15 18,17V18H6M15,9A3,3 0 0,1 12,12A3,3 0 0,1 9,9A3,3 0 0,1 12,6A3,3 0 0,1 15,9M3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3H5C3.89,3 3,3.9 3,5Z" /> ????????????????????????????????????</Grid> ????????????????????????????????</Border> ????????????????????????????????<TextBlock Padding="4,0,4,0" VerticalAlignment="Center" Text="{Binding Path=OnLineStatus}" /> ????????????????????????????</StackPanel> ????????????????????????????<StackPanel Grid.Column="1" Orientation="Horizontal" > ????????????????????????????????<TextBlock Padding="4,0,4,0" VerticalAlignment="Center" Text="{Binding Path=Name}"/> ????????????????????????????</StackPanel> ????????????????????????????<StackPanel Grid.Column="2" Orientation="Horizontal" > ????????????????????????????????<TextBlock Padding="4,0,4,0" VerticalAlignment="Center" Text="{Binding Path=RealName}"/> ????????????????????????????</StackPanel> ????????????????????????</Grid> ????????????????????</Border> ????????????????????<ControlTemplate.Triggers> ????????????????????????<Trigger Property="IsSelected" Value="true"> ????????????????????????????<Setter Property="Background" TargetName="Bd" Value="#9ea5b8"/> ????????????????????????????<Setter Property="Foreground" Value="#ffffff"/> ????????????????????????</Trigger> ????????????????????????<MultiTrigger> ????????????????????????????<MultiTrigger.Conditions> ????????????????????????????????<Condition Property="IsSelected" Value="false" /> ????????????????????????????????<Condition Property="IsMouseOver" Value="true" /> ????????????????????????????</MultiTrigger.Conditions> ????????????????????????????<Setter Property="Background" TargetName="Bd" Value="#e0e1e5"/> ????????????????????????</MultiTrigger> ????????????????????????<Trigger Property="IsEnabled" Value="false"> ????????????????????????????<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/> ????????????????????????</Trigger> ????????????????????</ControlTemplate.Triggers> ????????????????</ControlTemplate> ????????????</Setter.Value> ????????</Setter> ????</Style>
View Code
?
關(guān)于以上控件的事件與命令,引進(jìn)System.Windows.Interactivity.
在Xmal中導(dǎo)入命名控件?xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
使用代碼如下:
????????????????<ListBox Margin="12,0,12,0" BorderThickness="1" Style="{DynamicResource OnlineUserListBoxStyle}" ItemContainerStyle="{DynamicResource OnlineUserListBoxItemStyle}" ItemsSource="{Binding Path= AllUsers}" SelectedItem="{Binding Path=SelectedUser}" > ????????????????????<i:Interaction.Triggers> ????????????????????????<i:EventTrigger EventName="SelectionChanged"> ????????????????????????????<i:InvokeCommandAction Command="{Binding Path= UserSelectedChangedCommand}" /> ????????????????????????</i:EventTrigger> ????????????????????</i:Interaction.Triggers> ????????????????</ListBox>
View Code
?
系統(tǒng)運(yùn)行截圖:
?
說(shuō)明:
程序UI布局及展示為模仿微信多客服官方程序,所有樣式源碼為本人所寫(xiě)及參考網(wǎng)上部分資源。
程序中所用圖標(biāo)來(lái)源于這兩個(gè)資源庫(kù):http://ipnx.cn/ ?http://ipnx.cn/
?
小結(jié):
本文只作了簡(jiǎn)單的介紹,主要介紹UI上的一些實(shí)現(xiàn)和功能介紹。具體后臺(tái)業(yè)務(wù)邏輯看以后能否補(bǔ)上,包括Prism使用,和微信公眾號(hào)相關(guān)的知識(shí)。
?
博客地址:http://ipnx.cn/
博客版權(quán):本文以學(xué)習(xí)、研究和分享為主,歡迎轉(zhuǎn)載,但必須在文章頁(yè)面明顯位置標(biāo)明原文連接并保留此處說(shuō)明。
如果文中有不妥或者錯(cuò)誤的地方還望您指出,以免讓讀者產(chǎn)生誤解。
感謝您的閱讀,喜歡就點(diǎn)個(gè)贊,【推薦】一下!
?

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen





Scrapy implementiert das Crawlen von Artikeln und die Analyse ?ffentlicher WeChat-Konten. WeChat ist in den letzten Jahren eine beliebte Social-Media-Anwendung, und die darin betriebenen ?ffentlichen Konten spielen ebenfalls eine sehr wichtige Rolle. Wie wir alle wissen, sind ?ffentliche WeChat-Konten ein Ozean an Informationen und Wissen, da jedes ?ffentliche Konto Artikel, grafische Nachrichten und andere Informationen ver?ffentlichen kann. Diese Informationen k?nnen in vielen Bereichen umfassend genutzt werden, beispielsweise in Medienberichten, in der akademischen Forschung usw. In diesem Artikel erfahren Sie, wie Sie das Scrapy-Framework zum Crawlen und Analysieren von WeChat-Artikeln zu ?ffentlichen Konten verwenden. Scr

Der Unterschied zwischen der Authentifizierung ?ffentlicher WeChat-Konten und der Nichtauthentifizierung liegt im Authentifizierungslogo, den Funktionsberechtigungen, der Push-H?ufigkeit, den Schnittstellenberechtigungen und dem Benutzervertrauen. Detaillierte Einführung: 1. Zertifizierungslogo. Zertifizierte ?ffentliche Konten erhalten das offizielle Zertifizierungslogo, das blaue V-Logo. Dieses Logo kann die Glaubwürdigkeit und Autorit?t des ?ffentlichen Kontos erh?hen und es Benutzern erleichtern, das echte offizielle ?ffentliche Konto zu identifizieren 2. Funktionsberechtigungen. Zertifizierte ?ffentliche Konten verfügen beispielsweise über mehr Funktionen und Berechtigungen als nicht zertifizierte ?ffentliche Konten.

Python ist eine elegante Programmiersprache mit leistungsstarken Datenverarbeitungs- und Web-Crawling-Funktionen. In diesem digitalen Zeitalter ist das Internet mit gro?en Datenmengen gefüllt, und Crawler sind zu einem wichtigen Mittel zur Datenbeschaffung geworden. Daher werden Python-Crawler h?ufig bei der Datenanalyse und beim Mining eingesetzt. In diesem Artikel stellen wir vor, wie Sie den Python-Crawler verwenden, um Artikelinformationen zu ?ffentlichen WeChat-Konten zu erhalten. Der offizielle WeChat-Account ist eine beliebte Social-Media-Plattform für die Online-Ver?ffentlichung von Artikeln und ein wichtiges Instrument für die Werbung und das Marketing vieler Unternehmen und Self-Media.

WPF ist ein Desktop-Anwendungsentwicklungsframework, das auf dem von Microsoft entwickelten .NET Framework basiert. Es bietet umfangreiche Benutzeroberfl?chenelemente, Datenbindung, Animation und andere Funktionen, sodass Entwickler problemlos hochwertige Desktop-Anwendungen erstellen k?nnen.

Im heutigen Internetzeitalter sind offizielle WeChat-Konten für immer mehr Unternehmen zu einem wichtigen Marketingkanal geworden. Wenn Sie m?chten, dass Ihr offizielles WeChat-Konto mehr Funktionen implementiert, müssen Sie h?ufig entsprechende Schnittstellen schreiben. In diesem Artikel wird die PHP-Sprache als Beispiel verwendet, um vorzustellen, wie eine API-Schnittstelle für ein ?ffentliches WeChat-Konto erstellt wird. 1. Vorbereitung Vor dem Schreiben der API-Schnittstelle für das ?ffentliche WeChat-Konto muss der Entwickler über ein ?ffentliches WeChat-Kontokonto verfügen und Berechtigungen für die Entwicklerschnittstelle auf der ?ffentlichen WeChat-Plattform beantragen. Nachdem die Bewerbung erfolgreich war, k?nnen Sie die entsprechende Entwickler-AppID und AppSe erhalten

So entwickeln Sie mit Laravel ein Online-Bestellsystem auf Basis offizieller WeChat-Konten Mit der weit verbreiteten Nutzung offizieller WeChat-Konten beginnen immer mehr Unternehmen, diese als wichtigen Kanal für das Online-Marketing zu nutzen. In der Gastronomiebranche kann die Entwicklung eines Online-Bestellsystems auf Basis ?ffentlicher WeChat-Konten die Effizienz und den Umsatz von Unternehmen verbessern. In diesem Artikel wird erl?utert, wie Sie mit dem Laravel-Framework ein solches System entwickeln, und es werden spezifische Codebeispiele bereitgestellt. Projektvorbereitung Zun?chst müssen Sie sicherstellen, dass das Laravel-Framework in der lokalen Umgebung installiert wurde. OK

Das ?ffentliche Konto kann nicht nur einen Artikel pro Tag ver?ffentlichen, sondern bis zu acht Artikel gleichzeitig. So ver?ffentlichen Sie mehrere Artikel: 1. Klicken Sie links auf ?Materialverwaltung“ und dann auf ?Neues Grafik- und Textmaterial“. um mit der Bearbeitung zu beginnen. 2. Klicken Sie nach der Bearbeitung des ersten Artikels auf das +-Zeichen unter dem ersten Artikel und klicken Sie auf ?Bild und Textnachricht“, um den zweiten Artikel zu bearbeiten ?Speichern und in gro?en Mengen senden“, um die Ver?ffentlichung mehrerer Artikel abzuschlie?en.

Mit der Popularit?t des Internets und der weit verbreiteten Nutzung mobiler Ger?te sind offizielle WeChat-Konten zu einem unverzichtbaren Bestandteil des Unternehmensmarketings geworden. über ?ffentliche WeChat-Konten k?nnen Unternehmen problemlos mit Benutzern interagieren, Produkte und Dienstleistungen bewerben und die Markenbekanntheit steigern. Um ?ffentliche WeChat-Kontoanwendungen besser zu entwickeln, entscheiden sich immer mehr Entwickler und Unternehmen für die Verwendung der Go-Sprache zum Erstellen ?ffentlicher WeChat-Kontoanwendungen. Go-Sprache ist eine von Google entwickelte Programmiersprache. Ihre Syntax ist pr?gnant und eignet sich für die Erstellung leistungsstarker Echtzeitanwendungen mit hoher Parallelit?t. In Bezug auf Benutzerfreundlichkeit und
