html5+javascript,可以借助appscan、apicloud這種跨平臺開發(fā)工具,可以同時開發(fā)多端。
我們提供的服務有:網(wǎng)站建設、成都做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、云霄ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術(shù)的云霄網(wǎng)站制作公司
使用HTML5+開發(fā)的移動App并非mobile web頁面。這是新手最容易混淆的地方。mobile web的文件存放在web服務器上,而移動App的文件存放在手機本地,編寫移動App的html、js、css文件被打包到ipa或apk等原生安裝包,在手機客戶端運行。
用個更形象的列子,web app仍然是b/s結(jié)構(gòu),而移動App是c/s結(jié)構(gòu)甚至是完全脫線的單機應用。
這或許有點超過一些人的想象,他們認為HTML就是web、就是b/s,事實上javascript早已可通過nodejs等技術(shù)運行在服務器側(cè),而在HBuilder的移動App里,HTML、JS等文件也可以被打包成原生安裝包。
當然這些移動App里某些頁面也可以繼續(xù)從服務器端以網(wǎng)頁方式下行,就像任何原生應用(如微信)都可以內(nèi)嵌網(wǎng)頁一樣。
所以mobile web,在HBuilder里新建項目時,屬于web項目。不要放置到移動App項目下。mobile web項目也不能真機聯(lián)調(diào)和打包。
智游教育:舉幾個例子說明mobile web和移動App的區(qū)別。
例1:把一個mobile web項目,打包成移動App。
1. 在HBuilder里新建一個web項目,把mobile web代碼放進去。
2. 在HBuilder里新建移動App
3. 在新建的移動App下找到manifest.json,將其中的入口頁面配置為mobile web的網(wǎng)絡地址。
4. 然后點發(fā)行打包,就得到一個移動App的安裝包。除了有個安裝包和桌面有個快捷方式外,與瀏覽器的體驗不會有其他區(qū)別。
5. 不過注意,這樣的移動App體驗很差,它在頁面跳轉(zhuǎn)時會像瀏覽器那樣切換并且白屏,它完全無法脫線使用,沒有網(wǎng)絡時點開這個app只能看到一片白板。這樣的app在Apple的Appstore審核時是無法通過的,其他大的安卓市場也不會允許發(fā)行。
例子2:正規(guī)的移動App
1. 在HBuilder里新建移動App項目
2. 在移動App里編寫html、Js、css文件,本地js通過ajax方式請求服務器數(shù)據(jù),通過plus.net對象避開跨域限制
3. 移動App里的js可以通過plus對象調(diào)用手機原生能力
4. 編寫好的移動App點打包變成安裝包,這才是一個體驗良好的、可上線的移動App。
方法:
1.使用HTML5組織網(wǎng)頁的結(jié)構(gòu),使用div以及HTML5的語義化標簽將網(wǎng)頁的整個結(jié)構(gòu)搭建起來。
2.使用CSS或更其最新版本CSS3對HTML的樣式進行美化,主要控制其顏色、尺寸、背景等。
3.網(wǎng)站或是APP所需要的特效或是功能實現(xiàn)主要通過Javascript來實現(xiàn)。
4.網(wǎng)站或是APP要在不同的平臺和屏幕分辨率上都有很好的顯示,要使用響應式設計,其主要的內(nèi)容是使用CSS3的媒體查詢以及流式布局、rem等。
5.在網(wǎng)站頁面和功能都實現(xiàn)之后,需要使用phonegap這個中間件在原生開發(fā)環(huán)境下打包。
6.打包成Android應用程序,需要下載Android開發(fā)工具,現(xiàn)在,有兩種選擇,一是原先的Eclipse for Android 第2種是使用Android Studio。
7.打包成IOS應用程序,需要在蘋果開發(fā)環(huán)境下安裝Xcode,Xcode 是運行在操作系統(tǒng)Mac OS X上的集成開發(fā)工具(IDE),由蘋果公司開發(fā)。Xcode是開發(fā)OS X 和 iOS 應用程序的最快捷的方式。Xcode 具有統(tǒng)一的用戶界面設計,編碼、測試、調(diào)試都在一個簡單的窗口內(nèi)完成。
關于Web前端學習的必經(jīng)階段。正在從事Web前端學習的小伙伴們來和小伙伴們一起看一看吧。希望能夠?qū)Υ蠹矣兴鶐椭?/p>
第一階段:
● HTML+CSS:
HTML進階、CSS進階、div+css布局、HTML+css整站開發(fā)、
● JavaScript基礎:
Js基礎教程、js內(nèi)置對象常用方法、常見DOM樹操作大全、ECMAscript、DOM、BOM、定時器和焦點圖。
● JS基本特效:
常見特效、例如:tab、導航、整頁滾動、輪播圖、JS制作幻燈片、彈出層、手風琴菜單、瀑布流布局、滾動事件、滾差視圖。
● JS高級特征:
正則表達式、排序算法、遞歸算法、閉包、函數(shù)節(jié)流、作用域鏈、基于距離運動框架、面向?qū)ο蠡A、
● JQuery:基礎使用
懸著器、DOM操作、特效和動畫、方法鏈、拖拽、變形、JQueryUI組件基本使用。
第二階段:HTML5和移動Web開發(fā)
● HTML5:
HTML5新語義標簽、HTML5表單、音頻和視頻、離線和本地存儲、SVG、Web Socket、Canvas.
● CSS3:
CSS3新選擇器、偽元素、臉色表示法、邊框、陰影、background系列屬性改變、Transition、動畫、景深和深透、3D效果制作、Velocity.js框架、元素進場、出場策略、炫酷CSS3網(wǎng)頁制作。
● Bootstrap:
響應式概念、媒體查詢、響應式網(wǎng)站制作、刪格系統(tǒng)、刪格系統(tǒng)原理、Bootstrap常用模板、LESS和SASS。
● 移動Web開發(fā):
跨終端WEB和主流設備簡介、視口、流式布局、彈性盒子、rem、移動終端JavaScript事件、手機中常見JS效果制作、Zepto.js、手機聚劃算頁面、手機滾屏。
第三階段:HTTP服務和AJAX編程
● WEB服務器基礎:
服務器基礎知識、Apache服務器和其他WEB服務器介紹、Apache服務器搭建、HTTP介紹。
● PHP基礎:
PHP基礎語法、使用PHP處理簡單的GET或者POST請求、
● AJAX上篇:
Ajax簡介和異步的概念、Ajax框架的封裝、XMLHttpRequest對象詳細介紹方法、兼容性處理方法、Ajax框架的封裝、Ajax中緩存問題、XML介紹和使用。
● AJAX下篇:
JSON和JSON解析、數(shù)據(jù)綁定和模板技術(shù)、JSONP、跨域技術(shù)、圖片預讀取和lazy-load技術(shù)、JQuery框架中的AjaxAPI、使用Ajax實現(xiàn)瀑布流案例額。
第四階段:面向?qū)ο筮M階
● 面向?qū)ο蠼K極篇:
從內(nèi)存角度到理解JS面向?qū)ο蟆⒒绢愋?、復雜類型、原型鏈、ES6中的面向?qū)ο?、屬性讀寫權(quán)限、設置器、訪問器。
● 面向?qū)ο笕筇卣鳎?/p>
繼承性、多態(tài)性、封裝性、接口。
● 設計模式:
面向?qū)ο缶幊趟季S、單例模式、工廠模式、策略模式、觀察者模式、模板方法模式、代理模式、裝飾者模式、適配器模式、面向切面編程。
第五階段:封裝一個屬于自己的框架
● 框架封裝基礎:
事件流、冒泡、捕獲、事件對象、事件框架、選擇框架。
● 框架封裝中級:
運動原理、單物體運動框架、多物體運動框架、運動框架面向?qū)ο蠓庋b。
● 框架封裝高級和補充:
JQuery框架雛形、可擴展性、模塊化、封裝屬于傳智自己的框架。
第六階段:模塊化組件開發(fā)
● 面向組件編程:
面向組件編程的方式、面向組件編程的實現(xiàn)原理、面向組件編程實戰(zhàn)、基于組件化思想開發(fā)網(wǎng)站應用程序。
● 面向模塊編程:
AMD設計規(guī)范、CMD設計規(guī)范、RequireJS,LoadJS、淘寶的SeaJS。
第七階段:主流的流行框架
● Web開發(fā)工作流:
GIT/SVN、Yeoman腳手架、NPM/Bower依賴管理工具、Grunt/Gulp/Webpack。
● MVC/MVVM/MVW框架:
Angular.js、Backbone.js、Knockout/Ember。
● 常用庫:
React.js、Vue.js、Zepto.js。
第八階段:HTML5原生移動應用開發(fā)
● Cordova:
WebApp/NativeApp/HybirdApp簡介、Cordova簡介、與PhoneGap之間的關系、開發(fā)環(huán)境搭建、Cordova實戰(zhàn)(創(chuàng)建項目,配置,編譯,調(diào)試,部署發(fā)布)。
● Ionic:
Ionic簡介和同類對比、模板項目解析、常見組件及使用、結(jié)合Angular構(gòu)建APP、常見效果(下拉刷新,上拉加載,側(cè)滑導航,選項卡)。
● React Native:
React Native簡介、React Native環(huán)境配置、創(chuàng)建項目,配置,編譯,調(diào)試,部署發(fā)布、原生模塊和UI組件、原生常用API。
● HTML5+:
HTML5+中國產(chǎn)業(yè)聯(lián)盟、HTML5 Plus Runtime環(huán)境、HBuilder開發(fā)工具、MUI框架、H5+開發(fā)和部署。
第九階段: Node.js全棧開發(fā)
● 快速入門:
Node.js發(fā)展、生態(tài)圈、Io.js、Linux/Windows/OS X環(huán)境配置、REPL環(huán)境和控制臺程序、異步編程,非阻塞I/O、模塊概念,模塊管理工具、開發(fā)流程,調(diào)試,測試。
● 核心模塊和對象:
全局對象global,process,console,util、事件驅(qū)動,事件發(fā)射器、加密解密,路徑操作,序列化和反序列化、文件流操作、HTTP服務端與客戶端、Socket.IO。
● Web開發(fā)基礎:
HTTP協(xié)議,請求響應處理過程、關系型數(shù)據(jù)庫操作和數(shù)據(jù)訪問、非關系型數(shù)據(jù)庫操作和數(shù)據(jù)訪問、原生的Node.js開發(fā)Web應用程序、Web開發(fā)工作流、Node.js開發(fā)Blog案例。
● 快速開發(fā)框架:
Express簡介+MVC簡介、Express常用API、Express路由模塊、Jade/Ejs模板引擎、使用Express重構(gòu)Blog案例、Koa等其他常見MVC框架。
● Node.js開發(fā)電子商務實戰(zhàn):
需求與設計、賬戶模塊注冊登錄、會員中心模塊、前臺展示模塊、購物車,訂單結(jié)算、在線客服即時通訊模塊。
手機 App 的技術(shù)??梢苑殖扇?/p>
原生技術(shù)棧指的是,只能用于特定手機平臺的開發(fā)技術(shù)。比如,安卓平臺的 Java 技術(shù)棧,iOS 平臺的 Object-C 技術(shù)棧或 Swift 技術(shù)棧。
混合技術(shù)棧指的是開發(fā)混合 App 的技術(shù),也就是把 Web 網(wǎng)頁放到特定的容器中,然后再打包成各個平臺的原生 App。所以,混合技術(shù)棧其實是 Web 技術(shù)棧 + 容器技術(shù)棧,典型代表是 PhoneGap、Cordova、Ionic 等框架。
跨平臺技術(shù)棧指的是使用一種技術(shù),同時支持多個手機平臺。它與混合技術(shù)棧的區(qū)別是,不使用 Web 技術(shù),即它的頁面不是 HTML5 頁面,而是使用自己的語法寫的 UI 層,然后編譯成各平臺的原生 App。
這個技術(shù)棧就是純粹的容器技術(shù)棧,React Native、Xamarin、Flutter 都屬于這一類。學習時,除了學習容器的 API Bridge,還要學習容器提供的 UI 層,即怎么寫頁面
總結(jié):H5 開發(fā)主要用在混合技術(shù)棧。但是,跨平臺技術(shù)棧的某些容器也會用到(比如 React Native),因為它們的 UI 層借鑒了 Web 模型。
另外,混合技術(shù)棧和跨平臺技術(shù)棧的基礎,都是原生技術(shù)棧,因為最終都要編譯成原生App。所以,不管使用哪一種技術(shù)棧,多多少少要了解一些各平臺的原生技術(shù)。
不管什么技術(shù),最終在 App 里面顯示網(wǎng)頁,一定需要一個網(wǎng)頁引擎,這樣才能解析網(wǎng)頁。通常情況下,App 內(nèi)部會使用 WebView 控件作為網(wǎng)頁引擎。這是系統(tǒng)自帶的控件,專門用來顯示網(wǎng)頁。應用程序的界面,只要放上 WebView,就好像內(nèi)嵌了瀏覽器窗口,可以顯示網(wǎng)頁。不同的 App 技術(shù)棧要顯示網(wǎng)頁,區(qū)別僅僅在于怎么處理 WebView 這個原生控件。
不同系統(tǒng)的 WebView 控件名稱不一樣,安卓系統(tǒng)就叫 WebView,iOS 系統(tǒng)有較老的 UIWebView,也有較新的 WKWebView,作用都是一樣的,差異在于功能的強弱。
你說的這個主要制作思路是使用響應式設計,結(jié)合html5和css的一些特性制作(主要是css3的媒體檢查,根據(jù)不同視口載入不同樣式),但制作出來的東西能否被稱為手機app,這個還要看功能,如果你制作出來的東西能完成某些功能或者某種任務,這能被叫做webapp,如果不能就不要叫什么app,最多算是一種手機展示方式。
至于安卓和ios版本的問題,考慮主要是圖片分辨率的問題,區(qū)別不大。