前言:
HybridApp是指原生與前端語言相結合開發(fā)的應用,HybridApp可以運行在Android、iOS端上,不能用于PC端,稱為混合類APP。
一、對比原生APP開發(fā),混合開發(fā)有以下優(yōu)缺點優(yōu)點:
(1)開發(fā)成本低
(2)相對原生web界面版本更新快,維護相對簡單
(3)一套代碼可以支持Android端和iOS端
(4)能夠調用原生功能、API
(5)穩(wěn)定性相對較好
(6)用戶體驗較好
缺點:
(1)手機原生功能調用部分受限制
(2)加載受限于網絡環(huán)境
(3)較復雜的列表、樣式難以實現
混合開發(fā)是一種取長補短的開發(fā)模式,原生代碼部分利用Web View插件或者其它框架為H5提供容器,程序主要的業(yè)務實現、界面展示都是利用與H5相關的Web技術進行實現的。比如京東、淘寶、今日頭條等APP都是利用混合開發(fā)模式而成的。
二、如何快速完成一個混合APP
我們提供了一套JS和Native交互規(guī)范,前端通過JS,就可以調用Native的功能了。只需要在頁面中引入supconit://hcmobile.js(無需下載)。
我們還提供了豐富的原生功能插件,直接調用就可以了,比如相機、錄音、定位、藍牙等系統(tǒng)功能,以及眾多擴展插件,如第三方登錄、百度文字識別、語音聽寫等(點擊查看API)。
調用拍照功能示例代碼:
// 引用js<script src='supconit://hcmobile.js'></script><script>// 監(jiān)聽’deviceready‘事件document.addEventListener('deviceready', onDeviceReady, false)function onDeviceReady(){navigator.camera.takePhoto(function(success) { alert(JSON.stringify(success)); }, function(error) { alert(JSON.stringify(error)); },true,1024);}</script>
拍照之后返回數據示例:
{ "fullPath": "file:///private/var/mobile/Containers/Data/Application/6D266368-6960-4C75-8DCB-EC3D2F37A9AF/tmp/IMG_0443.jpeg", "thumbLocalURL": "cdvfile://localhost/root/private/var/mobile/Containers/Data/Application/6D266368-6960-4C75-8DCB-EC3D2F37A9AF/tmp/IMG_0443_thumb.jpeg", "lastModifiedDate": 1584342725384.5444, "size": 1024276, "localURL": "cdvfile://localhost/temporary/IMG_0443.jpeg", "type": "image/jpeg", "name": "IMG_0443.jpeg"}
拿到返回的數據之后,我們可以通過JS接著調用照片預覽插件,來顯示剛剛拍到的照片。
// 拍照 function photo () { if (ready === true) { navigator.camera.takePhoto(function(success) { photoData = success photoPreviewer() }, function(error) { // alert(JSON.stringify(error)); },true,1024); } } // 照片預覽 function photoPreviewer () { navigator.photoPreviewer.preview(photoData.fullPath, function(success) { },function(error) { alert(error); }); }
至此,一個簡單的前端工程就完成了
版權聲明:本文內容由互聯網用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現本站有涉嫌抄襲侵權/違法違規(guī)的內容, 請發(fā)送郵件至 舉報,一經查實,本站將立刻刪除。