ionic4 開發企業微信應用0

傻樣精英發表於2019-01-23

作為一個後臺開發人員,幾年前參與過Ionic1開發過一微信公眾號的經歷,所以這次開發企業微信應用,就使用了ionic,正好ionic4 rc版本釋出,雖然不是正式版,作為本專案的專案經理,還是決定使用ionic4開發,因為專案組員也是我。簡單記錄一下本次開發的過程,很多命令不經常輸入,就忘記了。

0.環境要求

nodejs(好像是10以上對於ionic4)

很多資料說最好裝cnpm,我使用感覺好像cnpm問題比npm多一點,而且現在網路情況不像以前那麼惡劣了

具有管理員許可權的命令列(類linux使用sudo)執行

npm install ionic -g

1.建立專案

目前ionic4還沒正式釋出,建立ionic4專案,需要使用

ionic start myApp tabs --type=angular

tabs代表模板型別,這可以直接ionic start --type=angular 嚮導方式建立

2.開發工具

官方好像推薦的是vs code,好像說了很多好像,主要是現在總結的時候已經不太記得當時的過程了,當時搜了很多資料,都是掃過一眼

vs code是用Electron應用,btw,ionic4也支援編譯成Electron應用執行。

一些常用外掛,如:Ionic 4 Snippets、path intellinesne

其他工具,如:Sublime Text3,這個也不錯,ionic1開發的時候用的這個,很快

3.簡單開發

預設tabs模板建立的三個tab頁叫tab1,tab2,tab3顯然不適合開發,新建三個頁面,放到pages檔案加下,使用命令:

ionic g

可以選擇新建型別,頁面,服務,模組,元件等,我建立了三個頁面,名字中支援直接輸入路徑,三個頁面:home,todo,done

刪除原來三個tab123頁面,修改路由:tabs.router.module.ts,我從來沒學過angular,所以也不懂具體含義,照著修改了一下,可以正常使用。

然後開發了一個列表頁面,從後臺獲取資料,建立一個service,記得新建命令嗎 ionic g,負責http從伺服器獲取資料,參考https://github.com/nuonuoge/ionic4_angular6_elm簡單實現

頁面照搬官方元件教程,這個就是用ionic的好處,基本元件都有了,實現搜尋,下拉重新整理,上拉載入更多,地址:https://beta.ionicframework.com/docs/components

<ion-toolbar>

<ion-searchbar placeholder="請輸入流程名稱" [(ngModel)]="qryStr"></ion-searchbar>

<ion-button slot="end" expand="full" size="default" (click)="doRefresh($event)">搜尋</ion-button>

</ion-toolbar>

<ion-content>

<ion-refresher slot="fixed" (ionRefresh)="doRefresh($event)">

<ion-refresher-content></ion-refresher-content>

</ion-refresher>

<ion-item *ngFor="let wi of workitems" (click)="selectItem(wi.workItemID,wi.workItemName)">

<ion-card-content>

<p>{{wi.processChName}}</p>

</ion-card-content>

<ion-card-content>

<p>{{wi.workItemName}}</p>

</ion-card-content>

<ion-card-content>

<p>{{wi.bizObject.name}}</p>

</ion-card-content>

</ion-item>

<ion-item *ngIf="touchEnd">

<ion-card-content>

<p>---我是有底線的---</p>

</ion-card-content>

</ion-item>

<ion-infinite-scroll #myinfinite (ionInfinite)="loadData($event)">

<ion-infinite-scroll-content

loadingSpinner="bubbles"

loadingText="載入更多...">

</ion-infinite-scroll-content>

</ion-infinite-scroll>

</ion-content>

中間發現一個viewchild裝飾器用type取值有問題的bug,git上報了,rc2已經解決了

4.執行除錯

ionic serve

除錯沒啥說的,後面引數也沒研究過,可以指定host之類的。

我使用chrome除錯的,跨域問題,需要安裝一個外掛:Allow-Control-Allow-Origin

還有一個方式,ionic配置代理,沒搞,我後面會跟後臺服務部署在一起,所以不需要。還被人鄙視都流行前後分離了,我還傳統jsp

5.釋出部署

釋出這個著實費了一些勁,網上資料很多,但是說的都很簡單,可能著本身就是很簡單,我卻卡住了

直接使用ionic build --prod生成www資料夾,我理解應該是拷貝里面內容到nginx類似靜態網站伺服器即可

我是直接拷貝www資料夾到tomcat的webapps目錄,後面就杯具了,出不來啊,記得前面掃大批ionic資料的時候看過一眼base url啥的,最後修改了index.html裡面的<base href="/" />為<base href="/www/" />,頁面裡的圖片路徑有不對了,這個參考網上寫成相對路徑即可,即去掉前面的/

但是這樣,除錯ionic serve又不行了,每次釋出都要改,這肯定不行啊,然後網上找資料,因為angular,webpack,啥的都不懂啊,根本沒法自己搞,只能抄

見到有人說這樣:

ionic cordova platform add browser

ionic cordova build browser

好像ionic4已經不需要了,而且這樣編譯出來的還是要修改base url。但是又意外收穫,用這個編譯的可以有啟動介面,像app一樣,不過網上這個資料好少,連官網都沒找到

有說加--engine browser --base-href /www/這兩個引數的,這兩個應該是angular的

又說把<base href="/" />改為<base href="." />

最後找到了我覺得的靠譜的,在https://github.com/ionic-team/ionic-cli/issues/3600,使用下面命令。建議進去看看,精彩在評論裡

ionic build --prod -- --base-href /www/

 

還有一個待解決的問題就是除錯的時候可以/www/tabs/todo,路由到todo的tab頁,釋出後報錯,這個說配置路由解決,還沒研究,準備有時間學學angular的路由,在解決這個問題

相關文章