H5+混合移動app應用開發——開篇

来源:https://www.cnblogs.com/jiekzou/archive/2017/12/29/8119434.html
-Advertisement-
Play Games

前言 經過2個多月的艱苦奮鬥,app的第一個版本已經快完工了,期間遇到了太多的坑,作為一個喜歡分享的人,我當然不會吝嗇分享這爬坑歷程。不要問我有多坑,我會告訴你很多,很多..... 過去一直從事.net web開發工作,直到幾個月前,公司需要開發一個h5+,於是我這樣的全能型選手自然而然就被派去搞w ...


前言

經過2個多月的艱苦奮鬥,app的第一個版本已經快完工了,期間遇到了太多的坑,作為一個喜歡分享的人,我當然不會吝嗇分享這爬坑歷程。不要問我有多坑,我會告訴你很多,很多.....

過去一直從事.net web開發工作,直到幾個月前,公司需要開發一個h5+,於是我這樣的全能型選手自然而然就被派去搞web app開發,在開發中遇到了太多的問題,一路過來也解決了太多的問題。

技術選型

html5、html5+、vue.js、mui、js

為什麼沒有jquery?因為,根本用不著,我們知道jquery它是對js的再次封裝,而其為了相容各個版本的瀏覽器,寫了許多許多代碼,而對我們app而言,基本上都是Webkit內核,根本不需要考慮瀏覽器之間的相容性問題,所以請忘掉jquery。

為什麼有vue.js?vue.js是一款mvvm框架,也是目前三大流行的mvvm前端框架之一(另外兩種:react和angular),在做技術選型之前,我有先對這三種框架去做一個簡單的研究,後面感覺還是vue.js的語法比較優雅,就像我喜歡C#語言一樣。

為什麼用MUI?因為感覺MUI上手簡單,因為項目工期緊,人又少(app加上我2個人)。在使用MUI之前有研究過ionic。

知識儲備

在開發H5混合應用之前,你必須要有一點前端的基礎。

css3、html、js、vue.js、h5+、mui

html、js、css相信只要做過web開發,相信就不會陌生,但是有許多開發人員這一塊比較薄弱,可能是因為長期做後端開發的緣故。如果基礎實在太差,建議先臨時抱佛腳充充電,學個入門還是很簡單的,敲幾天代碼就可以了。

感覺一樣學一天,三天就夠了。

至於vue.js的話,去官網過一篇文檔,官網:https://cn.vuejs.org/v2/guide/,然後就可以用起來了,一天足矣。

mui,官網:http://dev.dcloud.net.cn/mui/ui/,建議初略過一遍,相信你看完依舊有點雲里霧裡,沒關係,先瞭解就行了,同樣用一天時間。

h5+的話,網上查資料瞭解一下它是做什麼的,還有它的一些常用介面,半天。HTML5+ API文檔:http://www.html5plus.org/doc/zh_cn/android.html

現在基礎知識就準備得差不多了,就開始搞起來。

開發工具

由於是採用的mui框架,那麼自然而然就是用其官網提供的開發工具HBuilder。官網下載地址:http://www.dcloud.io/

下載下來之後直接安裝就行了,沒什麼好說的,需要註意的是,HBuilder專為MUI框架提供了太多的快捷鍵,請熟記,對提升編碼效率非常有幫助。在第一次打開HBuilder會有一個使用的幫助文檔,對照那上面去敲一遍,半天就應該熟練了。

你也可以直接查看MUI官網提供的代碼塊手冊:http://dev.dcloud.net.cn/mui/snippet/

對著多敲幾遍,你會很驚喜的。不過即便HBuilder如此牛叉的快捷鍵和提示,但是它依舊存在一個硬傷,那就是代碼格式化功能,用過VS的人,對其它IDE總是會有各種吐槽點,所以我通常都是用HBuilder寫代碼,用VS查錯和格式化代碼。

開始

新建官網的Demo項目

打開HBuilder,新建”移動App“

代碼目錄結構如下:

這就是官網提供的Demo的源碼,可以看下這些示例。但是既然叫做示例,就表示,這裡面很多東西無法直接在正式項目上那樣用,否則就是作死,而我所謂的各種坑也正是因為生產和示例終究是不一樣的。尤其是配合vue.js一起用的時候,坑更多了。

MUI有坑,H5+有坑,Vue有坑,而他們匯聚一起的時候,就是各種坑.....

HBuilder目前已經在頻繁更新、頻繁打補丁,一旦有更新,我們在打開HBuilder的時候,它就會自動提示,然而更新有風險,升級需謹慎,升級之前先看下更新的日誌,看它修複了什麼?新增了什麼,然後再觀望一周,再更新,這樣比較保險。

而且需要註意的是,如果我們已經新建了app項目,更新了HBuilder之後,我們項目中的mui.js和mui.css等這些文件是不會自動更新的,我們需要用最新版本的HBuilder新建一個demo,然後從哪個demo中把這些文件拷貝到項目中去。否則,你只升級HBuilder,而不去升級相關的js和css文件,會出現問題。

你準備好了嗎?開始一起來和我吐槽那些坑吧!

相關學習資料,可以參考我之前發的文章:MUI開發大全

從下一篇開始,我們開始一步一步來做app開發。我用上班時間寫的博客,老闆,你要給我開工資!!!

 


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

-Advertisement-
Play Games
更多相關文章
  • 經過前面三期的破解,想必大家已經非常熟悉破解的流程,這一篇也算是練手項目,我們繼續來練習吧 apk下載地址:鏈接: https://pan.baidu.com/s/1sl3b3R3 密碼: 6666 破解步驟: 1.試玩,找到關鍵字 如下圖,可以看到彈出了Toast對話框,支付失敗!這幾字就是我們要 ...
  • 前言:本文主要講述使用hook方式實現紅包插件,涉及到tweak相關知識,如果你不想瞭解具體實現細節可直接到我的 "Github" 地址參考安裝(包含越獄和非越獄兩種方法)   轉眼間2017即將過去,又到了領紅包拿到手軟的時候。年會上少不了幾百上千的紅包,真是稍不留神就錯過幾 ...
  • 空頁面的顯示很常用,所以自己做了一個通用的空頁面顯示,先看效果圖 在有網路的時候正常載入顯示,在沒有網路的時候自動載入空頁面,點擊空頁面重新載入網路請求的一個功能 1:定義一個xml頁面,頁面佈局是一個iamgeview和一個textview的顯示 2:添加輔助類,控制載入空頁面和顯示隱藏等邏輯 3 ...
  • 邊緣與中心檢測: CGRectGetMinX 返回矩形左邊緣的坐標。 CGRectGetMinY 返回矩形底部邊緣的坐標。 CGRectGetMidX 返回矩形中心的x坐標。 CGRectGetMidY 返回矩形中心的y坐標。 CGRectGetMaxX 返回矩形右邊緣的坐標。 CGRectGetM ...
  • 添加屬性 odiv.setAttribute("title","hello div!"); odiv.setAttribute("class","boxClass"); odiv.setAttribute("hello","divTag");//自定義屬性設(hello="divTag") 獲取屬性... ...
  • 類選擇器相容性 getbyclass()類選擇器,在IE8及以下均不可用。 // 類選擇器的相容性 function getbyclass(parentName,Name){ var parentName=document.getElementById(parentName); // 通過標簽名通配... ...
  • 無聊弄了這個東西,還是發表出來吧 導入包 實體類 資料庫連接 資料庫操作 service層數據操作 網頁對service層可視化實現 model package com.ij34.model; public class article { private int id; private String ...
  • 作者網站原文:http://hawkzz.com/blog/blog/1514542087911 簡介 我們開發不可能只寫一個頁面,每次都要寫很多頁面,這時為了開發效率,我們使用前端自動化工具webpack,那麼webpack是如何打包頁面的呢?又是如何打包多頁面的呢? 單頁面打包 我們知道要打包單 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...