


Eine WeChat-Miniprogrammversion der Zhihu-Beispielfreigabe
Dieser Artikel stellt Ihnen hauptsächlich eine WeChat-Miniprogrammversion von Zhihu von Grund auf vor. Ich hoffe, er kann Ihnen helfen, eine WeChat-Version von Zhihu zu entwickeln und daraus weitere Ideen zu gewinnen.
Anzeigeeffekt (Design und Interaktion im Schnittstellenstil stammen aus der Zhihu-App der iOS 4.8.0-Version):
Bitte wechseln Sie zu GitHub für dynamische Effekte Überprüfen.
1. Vorbereitung vor dem Start
Beantragen Sie ein Konto: Geben Sie gemäß dem Registrierungsdokument für das Mini-Programm die Informationen ein und reichen Sie die entsprechenden Materialien ein. Sie können Ihr eigenes Mini-Programm-Konto haben.
Entwicklungstools: WeChat-Entwicklertools
Datenquelle:
Easy Mock: Ein Datensimulationsartefakt. Sie können Rückgabedaten entsprechend dem von Ihnen benötigten Format schreiben. Und alle Daten werden zufällig generiert.
Mock.js: Easy Mock führt Mock.js ein, aber nur ein Teil der Syntax wird im Dokument bereitgestellt. Wenn Sie Ihre eigenen Mock-Daten prägnanter schreiben möchten, können Sie eine spezifischere Syntax in Mock anzeigen. js.
2. Initialisieren Sie ein Miniprogramm
Erstellen Sie einen neuen leeren Ordner
Öffnen Sie die WeChat-Entwicklertools und befolgen Sie die Schritte im Dokument „Ihr erstes Miniprogramm“. Erstellen Sie Ihr eigenes Miniprogramm.
Verzeichnisstruktur
weChatApp |___client | |___assets // 存储图片 | |___pages // 页面 | | |___index // 首页 | | |___index.wxml // 页面结构文件 | | |___index.wxss // 样式表文件 | | |___index.js // js文件 | |___utils // 全局公共函数 | |___app.js // 系统的方法处理文件 | |___app.json // 系统全局配置文件 | |___app.wxss // 全局的样式表 | |___config.json // 域名等配置文件 |___project.config.json |___README 小程序配置文件app.json内容 { // 页面路由 "pages": [ "pages/index/index", // 首页 "pages/findMore/findMore", // 想法页(开始起名为发现页面,后来没改/(ㄒoㄒ)/~~) "pages/userCenter/userCenter", // 更多(同上,原来起名为个人中心o(╯□╰)o) "pages/market/market", // 市场 "pages/searchResult/searchResult",// 搜索结果页 "pages/message/message", // 消息列表页 "pages/titleDetail/titleDetail", // 点击标题进入的问题详情页 "pages/contentDetail/contentDetail"// 点击内容进入的回答详情页 ], // 窗口 "window": { "backgroundColor": "#FFF", // 窗口的背景色 "backgroundTextStyle": "dark", // 下拉背景字体、loading 图的样式,仅支持 dark/light "navigationBarBackgroundColor": "#FFF",// 顶部tab背景颜色 "navigationBarTitleText": "知小乎", //顶部显示标题 "navigationBarTextStyle": "black", // 导航栏标题颜色,仅支持 black/white "enablePullDownRefresh": true // 是否开启下拉刷新 }, // tab导航条 "tabBar": { "backgroundColor": "#fff", // 背景颜色 "color": "#999", // 默认文字颜色 "selectedColor": "#1E8AE8", // 选中时文字颜色 "borderStyle": "white", // tabbar上边框的颜色, 仅支持 black/white /** * tab列表,最少2个,最多5个 * selectedIconPath: 选中时图片 * iconPath: 默认图片 * pagePath: 对应页面路由 * text: 对应文案 **/ "list": [{ "selectedIconPath": "assets/home-light.png", "iconPath": "assets/home.png", "pagePath": "pages/index/index", "text": "首页" }, { "selectedIconPath": "assets/find-light.png", "iconPath": "assets/find.png", "pagePath": "pages/findMore/findMore", "text": "想法" }, { "selectedIconPath": "assets/market-light.png", "iconPath": "assets/market.png", "pagePath": "pages/market/market", "text": "市场" }, { "selectedIconPath": "assets/msg-light.png", "iconPath": "assets/msg.png", "pagePath": "pages/message/message", "text": "消息" }, { "selectedIconPath": "assets/more-light.png", "iconPath": "assets/more.png", "pagePath": "pages/userCenter/userCenter", "text": "更多" }] } }
Konfigurieren Sie den Schnittstellendomänennamen: Da Easy Mock zum Simulieren der Schnittstellendaten verwendet wird, können Sie den angeforderten legalen Domänennamen in der Hintergrundentwicklung des Miniprogramms konfigurieren Domänenname des Einstellungsservers für https://www.easy-mock.com.
3. Während der Entwicklung aufgetretene Probleme und Lösungen
1. Miniprogramm zur Darstellung von HTML-Fragmenten
Nach dem Lesen der Webversion von Zhihu sind die von der Schnittstelle zurückgegebenen Antwortdaten A HTML-Codeausschnitt, sodass Sie an einer beliebigen Stelle in Ihrer Antwort ein Bild einfügen können.
Ja, das stimmt, es ist das Lila unten (╯°□°)╯︵┻━┻
Nach wiederholten Versuchen habe ich festgestellt, dass die native Schreibmethode das Rendern eines Teils des HTML-Codes nicht unterstützt Snippet, also habe ich es aufgegeben, HTML-Snippets zurückzugeben, daher sind keine Bilder in meiner Antwortliste (ಥ_ಥ)
Aber ich habe während der Recherche eine benutzerdefinierte Komponente gefunden: wxParse-WeChat-Applet-Rich-Text-Parsing-Komponente, Ich habe es noch nicht ausprobiert. Bereiten Sie sich darauf vor, es beim nächsten Mal zu versuchen.
2. Tab-Wechsel oben auf der Homepage
Jeder Die anklickbare Registerkarte ist an den Datenindex gebunden. Die äußerste Bindungsmethode bindtap erhält den Indexwert der angeklickten Registerkarte und zeigt dann den entsprechenden Registerkarteninhalt entsprechend dem Indexwert an
3. Up-Loading und Pull-Down-Refresh<view class="tab-wrapper" bindtap="setActive"> <view class="tab-item {{isActive == 0 ? 'tab-item-active' : ''}}" data-index="0">关注</view> <view class="tab-item {{isActive == 1 ? 'tab-item-active' : ''}}" data-index="1">推荐</view> <view class="tab-item {{isActive == 2 ? 'tab-item-active' : ''}}" data-index="2">热榜</view> <view class="tab-item-line" animation="{{animationData}}"></view> </view> <view class="tab-content {{isActive == 0 ? 'show' : 'hide'}}"> // ... </view> <view class="tab-content {{isActive == 1 ? 'show' : 'hide'}}"> // ... </view> <view class="tab-content {{isActive == 2 ? 'show' : 'hide'}}"> // ... </view>
Implementierungsideen
Pull-up-Loading: emmmmmmm... Was ich mit Pull-up-Loading meine, ist mehr Laden nach dem Erreichen des Tiefpunkts, fürchte ich anders als das, was jeder versteht o(╯□╰) o
Native Methode: onReachBottom, nach Erhalt der neuen Daten mit der ursprünglichen Datenliste verknüpfen
Zum Aktualisieren nach unten ziehen:
Native Methode: onPullDownRefresh. Nachdem die Datenliste mit den neu erhaltenen Daten verknüpft wurde,
Beachten Sie, dass Sie bei jeder Bearbeitung des Arrays setData verwenden müssen, um das ursprüngliche Array neu zuzuweisen. Andernfalls werden die Daten nicht aktualisiert ( ⊙ o ⊙ )!
Speichersuchverlauf:
Überprüfen Sie beim Auslösen einer Suche mit wx.setStorage, ob die Suchverlaufsliste das Feld enthält. Wenn nicht, verschieben Sie das Feld in das Array .
Suchverlauf anzeigen:
Verwenden Sie wx.getStorage, um die Suchverlaufsliste anzuzeigen, und zeigen Sie sie in einer Schleife an größer als 1 ist, wird eine Schaltfläche zum Löschen des Suchverlaufs angezeigt. >Suchverlauf löschen:
Einzelne Löschung: Jeder Suchverlauf ist an ein Löschereignis gebunden, den Index des geänderten Schlüsselworts abrufen, das Schlüsselwort löschen entsprechend dem Index aus der Suchverlaufsliste und übergeben Sie „setStorage re-storage“. Alle löschen: Verwenden Sie wx.removeStorage, um die Schlüsselwörter, die dem Suchverlauf entsprechen, direkt zu entfernen 5. Die Swiper-Karussellkomponente
befindet sich auf der Ideenseite. In der Karussellkomponente diskutieren xxxx Personen über ein vertikales Textkarussell, das in das Karussellmodul eingebettet ist Das Miniprogramm unterstützt keine gegenseitige Verschachtelung und kann daher teilweise nicht implementiert werden. Ich musste den Stil ändern, um /(ㄒoㄒ)/~~ zu schreiben.
6. Scrollen Sie zur Decke
Wenn die Titelleiste der Seite nach oben scrollt, wird sie an der Decke angezeigt.
Implementierungseffekt
ImplementierungsplanDie gesamte Seite ist mit7. Volltext erweitern und reduzieren
Klasse standardmäßig zum Textteil hinzufügen und Der Text über zwei Zeilen hinaus wird als Ellipse angezeigt.
.text-overflow{ height: 85rpx; display: -webkit-box; word-break: break-all; text-overflow: ellipsis; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp:2; }
点击展开全文和收起全文时对showIndex[index]的值取反,对应添加或移除该class。
<view class="find-hot-content {{!showIndex[index] ? 'text-overflow' : ''}}"> {{item.content}} </view> <view wx:if="{{!showIndex[index]}}" class="find-show-all" data-index="{{index}}" bindtap="toggleShow">展开全文</view> <view wx:if="{{showIndex[index]}}" class="find-show-all" data-index="{{index}}" bindtap="toggleShow">收起全文</view>
8、更改switch样式
switch类名如下,一定要加上父类,不然全局的都会被改掉_(:з」∠)_。
父类 .wx-switch-input{ display: inline-block; position: absolute; top: 20rpx; right: 20rpx; width: 84rpx; height: 44rpx; } 父类 .wx-switch-input::before{ width: 80rpx; height: 40rpx; } 父类 .wx-switch-input::after{ width: 40rpx; height: 40rpx; }
四、总结
通过这次小程序的开发,学到了很多东西,虽然遇到了很多问题,但解决问题的过程让我收获的更多,动手实践才是学习的最好方式。
相关推荐:
Das obige ist der detaillierte Inhalt vonEine WeChat-Miniprogrammversion der Zhihu-Beispielfreigabe. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

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

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

Undress AI Tool
Ausziehbilder kostenlos

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



Quark Netdisk und Baidu Netdisk sind beide sehr praktische Speichertools. Viele Benutzer fragen sich, ob diese beiden Softwareprogramme kompatibel sind. Wie teile ich Quark Netdisk mit Baidu Netdisk? Auf dieser Website erfahren Sie ausführlich, wie Sie Quark Network Disk-Dateien auf der Baidu Network Disk speichern. So speichern Sie Dateien von Quark Network Disk auf Baidu Network Disk Methode 1. Wenn Sie wissen möchten, wie Sie Dateien von Quark Network Disk auf Baidu Network Disk übertragen, laden Sie zunächst die Dateien herunter, die auf Quark Network Disk gespeichert werden müssen, und öffnen Sie sie dann Wählen Sie im Baidu Network Disk-Client den Ordner aus, in dem die komprimierte Datei gespeichert werden soll, und doppelklicken Sie, um den Ordner zu öffnen. 2. Klicken Sie nach dem Öffnen des Ordners oben links im Fenster auf „Hochladen“. 3. Suchen Sie die komprimierte Datei, die auf Ihren Computer hochgeladen werden soll, und klicken Sie, um sie auszuwählen.

1. Zuerst rufen wir NetEase Cloud Music auf und klicken dann auf die Software-Homepage-Oberfläche, um die Song-Wiedergabeoberfläche aufzurufen. 2. Suchen Sie dann in der Song-Wiedergabeoberfläche die Schaltfläche für die Freigabefunktion oben rechts, wie im roten Feld in der Abbildung unten gezeigt, klicken Sie, um den Freigabekanal im Freigabekanal auszuwählen, und klicken Sie auf die Option „Teilen für“. Wählen Sie unten den ersten Eintrag „WeChat Moments“ aus, mit dem Sie Inhalte für WeChat Moments freigeben können.

Vor kurzem hat der Baidu Netdisk Android-Client eine neue Version 8.0.0 eingeführt. Diese Version bringt nicht nur viele Änderungen, sondern fügt auch viele praktische Funktionen hinzu. Am auffälligsten ist unter anderem die Verbesserung der Ordnerfreigabefunktion. Jetzt können Benutzer ganz einfach Freunde einladen, beizutreten und wichtige Dateien im Beruf und im Privatleben zu teilen, was eine bequemere Zusammenarbeit und gemeinsame Nutzung ermöglicht. Wie teilen Sie die Dateien, die Sie benötigen, mit Ihren Freunden? Ich hoffe, dass Ihnen der Herausgeber dieser Website weiterhelfen kann. 1) Öffnen Sie die Baidu Cloud APP, wählen Sie zuerst den entsprechenden Ordner auf der Startseite aus und klicken Sie dann auf das Symbol [...] in der oberen rechten Ecke der Benutzeroberfläche (wie unten gezeigt). 2) Klicken Sie dann auf [+]. Klicken Sie auf die Spalte „Gemeinsame Mitglieder“ 】 und markieren Sie abschließend alle

Implementieren von Kartenumdreheffekten in WeChat-Miniprogrammen In WeChat-Miniprogrammen ist die Implementierung von Kartenumdreheffekten ein häufiger Animationseffekt, der die Benutzererfahrung und die Attraktivität von Schnittstelleninteraktionen verbessern kann. Im Folgenden wird detailliert beschrieben, wie der Kartenumdrehungseffekt im WeChat-Applet implementiert wird, und relevante Codebeispiele bereitgestellt. Zunächst müssen Sie in der Seitenlayoutdatei des Miniprogramms zwei Kartenelemente definieren, eines für die Anzeige des vorderen Inhalts und eines für die Anzeige des hinteren Inhalts. Der spezifische Beispielcode lautet wie folgt: <!--index.wxml-. ->&l

Mango TV bietet verschiedene Arten von Filmen, Fernsehserien, Varietés und anderen Ressourcen, und Benutzer können frei wählen, ob sie diese ansehen möchten. Mango TV-Mitglieder können nicht nur alle VIP-Dramen ansehen, sondern auch die höchste Bildqualität einstellen, damit Benutzer die Dramen gerne ansehen können. Nachfolgend stellt Ihnen der Herausgeber einige kostenlose Mango TV-Mitgliedskonten vor, die Sie nutzen können. Beeilen Sie sich und werfen Sie einen Blick darauf Schau mal. Kostenloses Teilen des neuesten Mitgliedskontos von Mango TV 2023: Hinweis: Dies sind die neuesten gesammelten Mitgliedskonten. Sie können sich anmelden und diese direkt verwenden. Ändern Sie das Passwort nicht nach Belieben. Kontonummer: 13842025699 Passwort: qds373 Kontonummer: 15804882888 Passwort: evr6982 Kontonummer: 13330925667 Passwort: jgqae Kontonummer: 1703

Laut Nachrichten dieser Website vom 31. Oktober und 27. Mai dieses Jahres kündigte die Ant Group den Start des „Chinese Character Picking Project“ an und leitete kürzlich neue Fortschritte ein: Alipay startete das Miniprogramm „Chinese Character Picking – Uncommon Characters“. um Sammlungen der Gesellschaft zu sammeln. Seltene Charaktere ergänzen die Bibliothek seltener Charaktere und bieten unterschiedliche Eingabeerlebnisse für seltene Charaktere, um die Eingabemethode für seltene Charaktere in Alipay zu verbessern. Derzeit können Benutzer das Applet „Ungewöhnliche Zeichen“ aufrufen, indem sie nach Schlüsselwörtern wie „Aufnehmen chinesischer Zeichen“ und „Seltene Zeichen“ suchen. Im Miniprogramm können Benutzer Bilder von seltenen Zeichen einreichen, die vom System nicht erkannt und eingegeben wurden. Nach der Bestätigung nehmen Alipay-Ingenieure zusätzliche Einträge in die Schriftartenbibliothek vor. Auf dieser Website wurde festgestellt, dass Benutzer im Miniprogramm auch die neueste Eingabemethode zur Wortteilung nutzen können. Diese Eingabemethode ist für seltene Wörter mit unklarer Aussprache konzipiert. Demontage durch den Benutzer

Wie Uniapp eine schnelle Konvertierung zwischen Miniprogrammen und H5 erreichen kann, erfordert spezifische Codebeispiele. Mit der Entwicklung des mobilen Internets und der Popularität von Smartphones sind Miniprogramme und H5 zu unverzichtbaren Anwendungsformen geworden. Als plattformübergreifendes Entwicklungsframework kann Uniapp die Konvertierung zwischen kleinen Programmen und H5 basierend auf einer Reihe von Codes schnell realisieren und so die Entwicklungseffizienz erheblich verbessern. In diesem Artikel wird vorgestellt, wie Uniapp eine schnelle Konvertierung zwischen Miniprogrammen und H5 erreichen kann, und es werden konkrete Codebeispiele gegeben. 1. Einführung in uniapp unia

Titel: Um das Problem zu lösen, dass Discuz WeChat-Freigaben nicht angezeigt werden können, sind spezifische Codebeispiele erforderlich. Mit der Entwicklung des mobilen Internets ist WeChat zu einem unverzichtbaren Bestandteil des täglichen Lebens der Menschen geworden. Bei der Website-Entwicklung werden viele Websites WeChat-Freigabefunktionen integrieren, um das Benutzererlebnis zu verbessern und die Website-Präsenz zu erweitern, sodass Benutzer Website-Inhalte problemlos mit Moments oder WeChat-Gruppen teilen können. Allerdings kann es bei der Verwendung von Open-Source-Forumsystemen wie Discuz manchmal zu dem Problem kommen, dass WeChat-Freigaben nicht angezeigt werden können, was zu gewissen Schwierigkeiten bei der Benutzererfahrung führt.
