提前申請和準備要要用的證書
成都創(chuàng)新互聯(lián)是專業(yè)的故城網(wǎng)站建設公司,故城接單;提供做網(wǎng)站、成都做網(wǎng)站,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行故城網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
用HBuilderX打正式包。
1)要在manifest.json里面配置App圖標和啟動圖片
2)App圖標尺寸:png 格式圖片 256*256
啟動圖片尺寸:png 格式圖片 480762 7201242 1080*1882
3. app上架材料梳理:
一般看個人要求,在騰訊、華為、小米各個平臺上線。
每個平臺都要注冊開發(fā)者賬號,用企業(yè)信息注冊,注意開發(fā)者賬號公司和軟著要一致,否則華為、騰訊會讓你重新按軟著上的公司名稱注冊開發(fā)者賬號。小米要提供一個代理授權書。
1)共同提交的材料:
1.公司名稱
2.公司營業(yè)執(zhí)照、其中百度需要營業(yè)執(zhí)照復印件并且在文字的地方加蓋公章。
3.企業(yè)法人身份證照片(正反兩面),其中百度另外要求上傳手持身份證照片(正反兩面)。
4.企業(yè)對公賬號,其中華為和小米打錢驗證,利用金額進行驗證。
5.企業(yè)地址。
2)?提交應用審核資料:
1.軟著,jpg,png,pdf,3種格式。
2.企業(yè)營業(yè)執(zhí)照,pg,png,pdf,種格式。
3.圖標,尺寸不一致。216216 jpg 512512 jpg
4.應用內截圖,多截幾張,最后用測試賬號截圖。
5.應用簡介和應用描述。
9.icp備案截圖。
7.如果軟著公司和開發(fā)者賬號不一致,需要提供代理授權書,簽字蓋章。
8.隱私政策網(wǎng)址。
上架成功后需要在各個商城自行下載。
Flutter是谷歌公司推出的跨終端的開發(fā)框架,支持Android、iOS和WEB終端。1.0版在2018年12月5日發(fā)布,目前的最新版本是1.5,它采用的開發(fā)語言是Dart,Dart也是谷歌開發(fā)的計算機編程語言,語法類似C,是編譯型語言:
hello world例子,打印字符串“Hello World!”:
1、沒有橋接層
React Native、Weex等技術都是跨終端的框架,然而性能跟原生App存在很大差距。這是由于它們的工作原理決定的:
React Native、Weex等技術多了一個橋接層,所以界面渲染會慢一些,由于UI渲染非常頻繁,想要不卡頓,基本上比較難,性能和用戶體驗跟原生代碼有差距。而這恰恰是Flutter的優(yōu)勢所在:
Dart可以被編譯成不同平臺的本地代碼,讓Flutter不通過橋接層直接跟平臺通信,自然性能會快一些。
2、編譯執(zhí)行
JavaScript是解釋執(zhí)行的,Dart是編譯執(zhí)行的,性能誰好一目了然。
3、Flutter Engine虛擬機
Flutter是依靠Flutter Engine虛擬機在iOS和Android上運行的,F(xiàn)lutter Engine使用C/C++編寫,開發(fā)人員通過Flutter框架直接和API在內部進行交互,所以具有輸入低延遲和UI渲染高幀速率的特點。除了這特點之外,F(xiàn)lutter還提供了自己的小部件,F(xiàn)lutter小部件是使用從React獲取靈感的現(xiàn)代框架構建的。 中心思想是您使用小部件構建UI。
窗口小部件根據(jù)其當前配置和狀態(tài)描述了它們的視圖。 當窗口小部件的狀態(tài)發(fā)生更改時,窗口小部件會重建其描述,框架將根據(jù)前面的描述進行區(qū)分,以確定底層呈現(xiàn)樹從一個狀態(tài)轉換到下一個狀態(tài)所需的最小更改。可以直接在OS平臺提供的畫布上進行描繪,也就是一些核心類庫直接放到虛擬機里面,調用起來更快。
從它的系統(tǒng)結構可以看出,類似安卓的ART(Android Run Time)虛擬機,同樣采用AOT(Ahead of TIme)技術,會在APP安裝時就編譯成機器語言,不再解釋執(zhí)行,從而優(yōu)化了APP運行的性能。
4、自帶渲染引擎
Flutter使用谷歌自己的Skia渲染引擎,而Android系統(tǒng)自帶Skia引擎,iOS平臺上Flutter也會把Skia引擎打包到APP中,從而實現(xiàn)了高效渲染。而React Native通過橋接層訪問原生UI,操作頻繁就容易出性能問題。
綜合所述,F(xiàn)lutter 是性能最接近原生代碼 的一種開發(fā)框架,未來也會是構建谷歌Fuchsia應用的主要方式,前途不可限量,唯一的問題就是需要學習一門新的語言:Dart,而有Java或者C#語言基礎的程序員會比較容易學習。
在前端項目開發(fā)過程中,現(xiàn)在很少有人會使用原生的CSS來搭建頁面,總歸都會引入一些前端UI框架以減少代碼的書寫。一般為了方便自己的使用,很多大公司都有自己的一套UI框架,同時也會把其開源出來。下面就是最近經常使用并且很流行的一些前端UI框架,總有一款適合你:
Mint UI
Mint UI
Mint UI是餓了么團隊開發(fā)的基于Vue .js的移動端UI框架,它包含豐富的 CSS 和 JS 組件,能夠滿足日常的移動端開發(fā)需要。
WeUI
WeUI是一套同微信原生視覺體驗一致的基礎樣式庫,由微信官方設計團隊為微信內網(wǎng)頁和微信小程序量身設計,令用戶的使用感知更加統(tǒng)一。包含button、cell、dialog、toast、article、icon等各式元素。
Cube-ui
Cube-ui
Cube-ui 是滴滴團隊開發(fā)的基于 Vue.js 實現(xiàn)的精致移動端組件庫。支持按需引入和后編譯,輕量靈活;擴展性強,可以方便地基于現(xiàn)有組件實現(xiàn)二次開發(fā)。
iView UI
iView UI
iView UI是一個強大的UI庫,基于vue,有很多實用的基礎組件比elementui的組件更豐富,主要服務于 PC 界面的中后臺產品。使用單文件的 Vue 組件化開發(fā)模式 基于 npm + webpack + babel 開發(fā),支持 ES2015 高質量、功能豐富 友好的 API ,自由靈活地使用空間。
LayUI
LayUI
LayUI是一款采用自身模塊規(guī)范編寫的前端 UI 框架,遵循原生 HTML/CSS/JS 的書寫與組織形式,門檻極低,拿來即用。其外在極簡,卻又不失飽滿的內在,體積輕盈,組件豐盈,從核心代碼到 API 的每一處細節(jié)都經過精心雕琢,非常適合界面的快速開發(fā)。
ElementUI
ElementUI
Element是餓了么前端開源維護的Vue UI組件庫,組件齊全,基本涵蓋后臺所需的所有組件,文檔講解詳細,例子也很豐富。 主要用于開發(fā)PC端的頁面,是一個質量比較高的Vue UI組件庫。
at-ui
at-ui
at-ui 是一款阿里團隊創(chuàng)建的基于 Vue 2.x 的前端 UI 組件庫,主要用于快速開發(fā) PC 網(wǎng)站產品。 它提供了一套 npm + webpack + babel 前端開發(fā)工作流程,CSS 樣式獨立,即使采用不同的框架實現(xiàn)都能保持統(tǒng)一的 UI 風格。
amaze UI
amaze UI
Amaze UI 是一個移動優(yōu)先的跨屏前端框架。提供基礎樣式,網(wǎng)格,表格、表單、按鈕及常用組件樣式。是一個輕量級(所有 CSS 和 JS gzip 后 100 kB 左右)、?Mobile first?的前端框架
Vant UI
Vant UI
Vant UI是有贊前端團隊基于有贊統(tǒng)一的規(guī)范實現(xiàn)的 Vue 組件庫,提供了一整套 UI 基礎組件和業(yè)務組件。通過 Vant,可以快速搭建出風格統(tǒng)一的頁面,提升開發(fā)效率。
Flutter
Flutter
Flutter 是谷歌的移動端 UI 框架,可在極短的時間內構建 Android 和 iOS 上高質量的原生級應用。 Flutter 可與現(xiàn)有代碼一起工作, 它被世界各地的開發(fā)者和組織使用, 并且 Flutter 是免費和開源的.
ionic
Ionic既是一個CSS框架也是一個Javascript UI庫,Ionic 是目前最有潛力的一款 HTML5 手機應用開發(fā)框架。通過 SASS 構建應用程序,它 提供了很多 UI 組件來幫助開發(fā)者開發(fā)強大的應用。 它使用 JavaScript MVVM 框架和 AngularJS 來增強應用。提供數(shù)據(jù)的雙向綁定,使用它成為 Web 和移動開發(fā)者的共同選擇。
實現(xiàn)pdf閱讀、橫豎屏切換,以及pdf頁面的點擊放大和雙指放大等功能
在這個項目中使用的是 flutter_plugin_pdf_viewer: ^1.0.7 ,可以滿足我們最基本的pdf需求閱讀需求。所做的滿足項目需求的工作主要是橫豎屏切換功能,以及我們的初始化繼續(xù)閱讀等等。
首先導入插件部分源碼
插件所提供的示例,已經滿足了最基本的圖片放大、橫屏閱讀的功能,我們工作的難點就在于pdf豎屏閱讀的實現(xiàn),所以我們需要解決的問題主要有以下幾點:
(1) 橫屏加載同一頁面不能重復流量加載
(2) 切換豎屏時加載速度不能過慢,頁面不能有斷層
(3) 橫豎屏切換時頁碼的定位保持
針對于上述問題,我們一一進行解決。
重復流量加載 ,解決這一問題比較簡單,我們可以利用緩存實現(xiàn),在每一次加載pdf頁時,存儲其(key,value),這樣在下一次加載時我們會判斷這個頁面在緩存中是否已經存在,不存在重新加載,存在則調用緩存中的數(shù)據(jù),頁面銷毀時清除所有緩存即可。
切換橫豎屏 ,豎屏PDF閱讀的實現(xiàn),思路就是將所有橫屏頁面存在list中,使用LIstView.builder()進行繪制,這種方法存在的缺點就是太慢了,需要將所有頁面全部加載之后,才可以繪制頁面,用戶體驗非常差,所以我們需要做一些改進,為了提升加載速度,實現(xiàn)效果GIF中的效果,我們就要使用FutureBuilder()方法,來實現(xiàn)預加載功能,具體實現(xiàn)如下:
(在這里不對此組件過多介紹,后續(xù)會專門介紹此組件的使用),這樣我們就可以實現(xiàn)預加載的功能了。
橫豎屏切換定位 ,這個點的解決思路已經在我的 (Flutter 初始化ListView定位子組件位置) 中進行了介紹,實現(xiàn)了解決。
至此,我們就解決了所有的難點問題。