ionic4 開發企業微信應用0

来源:https://www.cnblogs.com/sss/archive/2019/01/23/10308126.html
-Advertisement-
Play Games

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


作為一個後臺開發人員,幾年前參與過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的路由,在解決這個問題


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 項目組織結構 ajax數據請求的封裝和api介面的模塊化管理 第三方庫按需載入 利用less的深度選擇器優雅覆蓋當前頁面UI庫組件的樣式 webpack實時打包進度 vue組件中選項的順序 路由的懶載入 路由模塊拆分化管理 項目組織結構 清晰的項目結構能讓別人開發進來更容易理解,當然,每個人都有一定 ...
  • 一、Vue渲染數據原理 原生JS改變頁面數據,必須要獲取頁面節點,也即是進行DOM操作,jQuery之類的框架只是簡化DOM操作的寫法,實質並沒有改變操作頁面數據的底層原理,DOM操作影響性能(導致瀏覽器的重繪和迴流),Vue是一個mvvm框架(庫),大幅度減少了DOM操作,操作數據如下圖: Vie ...
  • bable只轉換新語法 不支持新的全局變數如promise async等等,可以使用babel-polyfilll來相容 ...
  • 歷史 以前做後端時,接觸過一點Spring,也是第一次瞭解DI、IOC等概念,面向切麵編程,對於面向對象編程還不怎麼熟練的情況下,整個人慌的一批,它的日誌記錄、資料庫配置等都非常方便,不回侵入到業務代碼中,後來轉戰前端,就沒怎麼關註了..... JS引入DI編程概念 學習 redux 時,看到語法里 ...
  • 無需考慮數據結構,效果如圖 話不多說,先上代碼 1.wxml 2.wxss Action添加一個簡單的漸顯動畫 3.js 原理:通過onPageScroll() 方法返回的e.scrollTop值與手機視窗寬高進行計算,較完美的解決了等高或均高圖片序列的圖片懶載入。 關於圖片高度:圖片+容器寬高必須 ...
  • Vim關於Vue的生態鏈還是很少,不過湊活湊活還是能用的。 縮進 縮進採用的是兩個空格,.vimrc配置: 語法高亮 重要的語法高亮,支持最好的應該是vim-vue。 使用Vundle下載: 這樣語法高亮基本上就實現了,不過會出現滑動過快高亮失效的情況,文檔中給出的原因是vue包含html、css、 ...
  • 1. 簡單的函數: 2.1 帶參數的函數: 2.2 帶參數的函數: 3.1 帶返回值的函數 3.2 帶有參數和返回值的函數 嘗試把返回值用字元串拼接的方式組合了一下,還真成功了 結果: ...
  • 要開始寫Vue的功能了,是不是很激動呢!開始吧! 1、首先建立一個html頁面,導入Vue js包 1 <script type="text/javascript" src="js/vue.min.js"></script> 2、架包導入之後,我們需要創建一個Vue對象,用來綁定元素節點,從而達到操 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...