午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

開發(fā) | 無(wú)需后端編碼,手把手教你把 WordPress 做成小程序

 新華書店好書榜 2017-08-22
文 | Jeff
這篇文章,記錄的就是我自己在開發(fā)第一版小程序的過(guò)程。
知曉程序(微信號(hào) zxcx0101)今天分享的這篇文章,將一步步講解,如何將一個(gè) WordPress 網(wǎng)站借助 REST API 開發(fā)微信小程序版。
關(guān)注「知曉程序」公眾號(hào),在微信后臺(tái)回復(fù)「開發(fā)」,獲取小程序開發(fā)技巧精選文章。
小程序如何讀取 WordPress 博客內(nèi)容?
WordPress 在 4.6 版本推出了 REST API。簡(jiǎn)單來(lái)說(shuō),它是一種通過(guò) HTTP 請(qǐng)求完成的客戶端與服務(wù)端數(shù)據(jù)交互方案。
我們?cè)L問平常的普通 WordPress 網(wǎng)站,在沒有開啟靜態(tài)緩存的情況下,大致需要「從數(shù)據(jù)庫(kù)拉取數(shù)據(jù) → 服務(wù)端 PHP 進(jìn)程拼成 HTML → 用戶瀏覽器界面」的過(guò)程。
REST API 的處理過(guò)程類似,但稍微不同的是:輸出的是 JSON 格式的數(shù)據(jù),且一般是給客戶端(非網(wǎng)頁(yè)瀏覽器)使用。
有了 REST API,一個(gè)網(wǎng)站制作不同客戶端(Android 或 iOS 的 app,以及微信小程序),而共享一個(gè)數(shù)據(jù)庫(kù)成為了可能。
我們可通過(guò)瀏覽器,直接訪問 WordPress 的其中一個(gè)接口地址:your-site.com/wp-json/wp/v2/posts?per_page=5&page=1,你可能會(huì)看到類似這樣的返回。
現(xiàn)在,讓我將上面的 URL 解釋下。
  • /wp-json/wp/v2/ 是WordPress 定義的 REST API 路由(router)與版本號(hào)等的組合。

  • posts 在 WordPress 中,稱為「終點(diǎn)」(endpoint)。

  • per_pagepage 則是參數(shù)。

上面的 URL,表示輸出第 1 頁(yè)最新 5 篇文章的數(shù)據(jù)(5 篇為 1 頁(yè))
微信小程序通過(guò) REST API,可以獲取到 WordPress 網(wǎng)站上的數(shù)據(jù)。對(duì)數(shù)據(jù)進(jìn)行處理后,通過(guò)前端代碼渲染,就是你在微信客戶端上看到的界面。
WordPress 的 REST API 已經(jīng)很完善了,什么文章數(shù)據(jù)、頁(yè)面數(shù)據(jù)、用戶數(shù)據(jù)等都不在話下。
把 WordPress 作為小程序的后端,實(shí)在是省了不少人力,至少對(duì)我們這些前端狗來(lái)說(shuō),不用寫苦逼的后端代碼。
開始動(dòng)手,做一個(gè) WP 小程序
上一章節(jié)大致介紹了原理后,接下來(lái)就以本站開發(fā)的「DeveWork 極客」小程序第一版為例,介紹三個(gè)頁(yè)面(首頁(yè)、內(nèi)容頁(yè)、閱讀記錄頁(yè))大體上是如何做出來(lái)的。
1. 準(zhǔn)備工作
準(zhǔn)備工作就不細(xì)說(shuō),大體上包括如下操作。
  • 在微信公眾平臺(tái)管理后臺(tái)上注冊(cè)小程序賬號(hào),配置合法域名等信息。

  • 二是服務(wù)端確保配置好 HTTPS(但不一定要求備案)。

另外在開始開發(fā)之前,我在服務(wù)端對(duì) WordPress REST API 進(jìn)行了一些定制化的輸出。
2. 項(xiàng)目結(jié)構(gòu)
結(jié)合微信官方 quick start 的例子與個(gè)人需求,將項(xiàng)目結(jié)構(gòu)如下分好:

3. 構(gòu)建文章列表頁(yè)面
小程序的首頁(yè),就是文章列表頁(yè)面。啟動(dòng)小程序時(shí),會(huì)展示最新的 5 篇文章,然后通過(guò)下拉流式加載更多文章。
在這里,我們用到的 WordPress REST API 就是 your-site.com/wp-json/wp/v2/posts?per_page={num}&page={num}。

index.js 文件的核心,是通過(guò) wx.request 接口,訪問上面的 API URL 獲取到文章數(shù)據(jù),再 setData 進(jìn)行渲染。

我將這些代碼封裝在函數(shù)中,方便后續(xù)重復(fù)調(diào)用。
設(shè)置的數(shù)據(jù)通過(guò) index.wxml 循環(huán)輸出。因?yàn)橐鰸L動(dòng)加載,所以采用了小程序的 scroll-view 組件。

上面的 WXML 代碼中,綁定了兩個(gè)事件函數(shù):一是下拉事件 pullDownRefresh(),一個(gè)是點(diǎn)擊跳轉(zhuǎn)至文章頁(yè)面的事件 redictSingle()。

4. 構(gòu)建文章詳情頁(yè)
文章頁(yè)使用到的 API 地址是 your-site.com/wp-json/wp/v2/posts/{id}類似地,通過(guò) wx.request 接口訪問 URL,然后渲染數(shù)據(jù)到 WXML 頁(yè)面上。
代碼與上面的類似,就不再重復(fù)。但需要提醒的是,這里涉及到如何將富文本轉(zhuǎn)為微信小程序可識(shí)別的 WXML 的問題。
因?yàn)楂@取的 JSON 數(shù)據(jù)中,文章正文部分是一段 HTML 代碼。如果將 HTML 直接輸出到小程序中,是會(huì)報(bào)錯(cuò)的。
我們需要將這段 HTML 代碼轉(zhuǎn)化為微信小程序 WXML 語(yǔ)言,下一章節(jié)我會(huì)介紹這個(gè)過(guò)程。
5. 閱讀記錄頁(yè)面
閱讀記錄頁(yè)面是用來(lái)展示用戶瀏覽歷史,直接照著官方的 Hello World 例子就做起來(lái)了。
這個(gè)頁(yè)面用到的主要如下兩種接口:本地緩存相關(guān)接口、用戶授權(quán)相關(guān)接口(wx.login,wx.getUserInfo 等)。
從用戶體驗(yàn)上考慮,不應(yīng)該一開始就向用戶申請(qǐng)授權(quán),而是有需要的頁(yè)面才申請(qǐng)。同時(shí),也應(yīng)該做好用戶拒絕授權(quán)的優(yōu)雅處理。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多