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
  • 移動開發(一):使用.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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...