


Utiliser WPF pour implémenter plusieurs fonctions de service client des comptes publics WeChat
Mar 05, 2017 pm 02:16 PMTitre original?: Utiliser WPF pour implémenter plusieurs fonctions de service client pour les comptes publics WeChat
Introduction?:
Ceci est réalisé en utilisant WPF en tant que version de bureau de technologie frontale du système de service multi-client WeChat. Le projet utilise Prism comme framework frontal, utilise le modèle MVVM pour séparer efficacement l'interface utilisateur et le code logique, et utilise le conteneur MEF IOC intégré à MefBootstrapper pour découpler chaque objet de module. Utilisation raisonnable de IEventAggregator pour implémenter des événements et des interactions. L'article donnera des références d'implémentation pertinentes lors de l'introduction des fonctions correspondantes. Les lecteurs pourront se référer aux améliorations et les introduire dans leurs propres projets.
Interface d'exécution du programme et aper?u des fonctions?:
Connexion?:
Fonction?: prend en charge la mémorisation des utilisateurs et des paramètres utilisateur, avec la possibilité de mémoriser les mots de passe des utilisateurs.
Implémentation liée?:
Personnalisez la fenêtre de connexion et introduisez Microsoft.Windows.Shell. Vous pouvez vous référer à la bibliothèque Chrome personnalisée WPF et à la classe MSDN WindowChrome pour les implémentations de fenêtres personnalisées associées.
Pour implémenter les fonctions des boutons minimiser, agrandir et fermer, veuillez vous référer à l'exemple ci-dessus.
Bouton de connexion, personnaliser le style, réécrire le modèle du bouton, le code de référence est le suivant?:
?<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>
Afficher le code
Mémorisez le mot de passe et utilisez XmlSerializer pour sérialiser les informations utilisateur dans le fichier de configuration XML local lorsque le programme démarre Charger le fichier de configuration XML. Utilisation MSDN , réponse rapide
Implémentation liée à RichTextBox?: toutes les entrées de texte, d'expressions et d'images sont implémentées dans des zones de texte enrichi, donc l'entrée est traité pour l'événement TextChanged Effectuer une série de traitements.
Texte?: Aucun traitement nécessaire.
émotic?ne?: saisissez le symbole d'échappement de l'émotic?ne dans la zone de texte, puis recherchez l'image de l'émotic?ne correspondante en fonction du symbole d'échappement et remplacez-la. InlineUIContainer
Graphiques dynamiques Gif?: Gif n'est pas pris en charge dans WPF, vous devez donc écrire un contr?le utilisateur personnalisé pour afficher les expressions gif.
Référez-vous à Zhou Yinhui
[Problème WPF] Afficher le GIF dynamique dans WPFFonction de capture d'écran?: Le code source était trouvé en ligne, est une capture d'écran de Winform. J'ai apporté quelques modifications mineures et les ai introduites dans le projet. Référence?: C# réalise un contr?le de capture d'écran complet (4) - version complète http://miracleart.cn/
3.
Afficher le code
????<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>
Panneau de réponse rapide
Appliquez TreeView plus HierarchicalDataTemplate pour implémenter une liste arborescente.
5. Transférer le client
Personnalisez la fenêtre de transfert du client, le style du code Xaml est le suivant suit :
<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
轉接客戶列表,樣式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">工號</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
?
關于以上控件的事件與命令,引進System.Windows.Interactivity.
在Xmal中導入命名控件?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)運行截圖:
?
說明:
程序UI布局及展示為模仿微信多客服官方程序,所有樣式源碼為本人所寫及參考網(wǎng)上部分資源。
程序中所用圖標來源于這兩個資源庫:http://miracleart.cn/ ?http://miracleart.cn/
?
小結:
本文只作了簡單的介紹,主要介紹UI上的一些實現(xiàn)和功能介紹。具體后臺業(yè)務邏輯看以后能否補上,包括Prism使用,和微信公眾號相關的知識。
?
博客地址:http://miracleart.cn/
博客版權:本文以學習、研究和分享為主,歡迎轉載,但必須在文章頁面明顯位置標明原文連接并保留此處說明。
如果文中有不妥或者錯誤的地方還望您指出,以免讓讀者產(chǎn)生誤解。
感謝您的閱讀,喜歡就點個贊,【推薦】一下!
?

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Scrapy met en ?uvre l'exploration d'articles et l'analyse des comptes publics WeChat. WeChat est une application de médias sociaux populaire ces dernières années, et les comptes publics qui y sont exploités jouent également un r?le très important. Comme nous le savons tous, les comptes publics WeChat sont un océan d’informations et de connaissances, car chaque compte public peut publier des articles, des messages graphiques et d’autres informations. Ces informations peuvent être largement utilisées dans de nombreux domaines, tels que les reportages médiatiques, la recherche universitaire, etc. Ainsi, cet article expliquera comment utiliser le framework Scrapy pour explorer et analyser les articles du compte public WeChat. Scr

La différence entre l'authentification du compte public WeChat et la non-authentification réside dans le logo d'authentification, les autorisations de fonction, la fréquence de poussée, les autorisations d'interface et la confiance de l'utilisateur. Introduction détaillée : 1. Le logo de certification. Les comptes publics certifiés obtiendront le logo de certification officiel, qui est le logo bleu V. Ce logo peut augmenter la crédibilité et l'autorité du compte public et permettre aux utilisateurs d'identifier plus facilement le véritable compte public officiel. 2. Autorisations de fonction. Les comptes publics certifiés ont plus de fonctions et d'autorisations que les comptes publics non certifiés. Par exemple, les comptes publics certifiés peuvent demander à activer la fonction de paiement WeChat pour réaliser des paiements en ligne et des opérations commerciales, etc.

WPF est un framework de développement d'applications de bureau basé sur le .NET Framework développé par Microsoft. Il fournit des éléments d'interface utilisateur riches, une liaison de données, une animation et d'autres fonctions, permettant aux développeurs de créer facilement des applications de bureau de haute qualité.

Python est un langage de programmation élégant doté de puissantes capacités de traitement des données et d'exploration Web. à l’ère du numérique, Internet regorge d’une grande quantité de données et les robots d’exploration sont devenus un moyen important d’obtenir des données. Par conséquent, les robots d’exploration Python sont largement utilisés dans l’analyse et l’exploration de données. Dans cet article, nous expliquerons comment utiliser le robot d'exploration Python pour obtenir des informations sur les articles du compte public WeChat. Le compte officiel WeChat est une plateforme de médias sociaux populaire pour la publication d'articles en ligne et constitue un outil important pour la promotion et le marketing de nombreuses entreprises et médias personnels.

à l’ère d’Internet d’aujourd’hui, les comptes officiels WeChat sont devenus un canal de marketing important pour de plus en plus d’entreprises. Si vous souhaitez que votre compte officiel WeChat implémente plus de fonctions, vous devez souvent écrire les interfaces correspondantes. Cet article utilisera le langage PHP comme exemple pour présenter comment créer une interface API de compte public WeChat. 1. Préparation Avant d'écrire l'interface API du compte public WeChat, le développeur doit disposer d'un compte de compte public WeChat et demander les autorisations d'interface de développeur sur la plateforme publique WeChat. Une fois l'application réussie, vous pouvez obtenir les développeurs AppID et AppSe appropriés.

Comment utiliser Laravel pour développer un système de commande en ligne basé sur les comptes officiels WeChat. Avec l'utilisation généralisée des comptes officiels WeChat, de plus en plus d'entreprises commencent à les utiliser comme canal important de marketing en ligne. Dans le secteur de la restauration, le développement d'un système de commande en ligne basé sur les comptes publics WeChat peut améliorer l'efficacité et les ventes des entreprises. Cet article expliquera comment utiliser le framework Laravel pour développer un tel système et fournira des exemples de code spécifiques. Préparation du projet Tout d'abord, vous devez vous assurer que le framework Laravel a été installé dans l'environnement local. D'ACCORD

Le compte public peut non seulement publier un article par jour, mais peut publier jusqu'à huit articles à la fois. Comment publier plusieurs articles : 1. Cliquez sur ? Gestion du matériel ? sur la gauche, puis cliquez sur ? Nouveau matériel graphique et textuel ?. pour commencer l'édition. Premier article ; 2. Après avoir édité le premier article, cliquez sur le signe + sous le premier article à gauche et cliquez sur ? Image et message texte ? pour modifier le deuxième article ; "Enregistrer et envoyer en masse" pour finaliser la publication de plusieurs articles.

Avec la popularité d’Internet et l’utilisation généralisée des appareils mobiles, les comptes officiels WeChat sont devenus un élément indispensable du marketing d’entreprise. Grace aux comptes publics WeChat, les entreprises peuvent facilement interagir avec les utilisateurs, promouvoir des produits et services et accro?tre la notoriété de leur marque. Afin de mieux développer les applications de compte public WeChat, de plus en plus de développeurs et d'entreprises choisissent d'utiliser le langage Go pour créer des applications de compte public WeChat. Le langage Go est un langage de programmation développé par Google. Sa syntaxe est concise et adaptée à la création d'applications en temps réel hautes performances et à haute concurrence. En termes de facilité d'utilisation et
