前言
HybridApp是指原生與前端語言相結合開發的
應用,HybridApp可以運行在Android、iOS端上,不能用於PC端,稱為混合類APP。
首先對比原生APP開發,混合開發有以下優缺點
優點:
(1)開發成本低
(2)相對原生web界面版本更新快,維護相對簡單
(3)一套代碼可以支持Android端和iOS端
(4)能夠調用原生功能、API
(5)穩定性相對較好
(6)用戶體驗較好
缺點:
(1)手機原生功能調用部分受限制
(2)加載受限於網絡環境
(3)較復雜的列表、樣式難以實現
混合開發是一種取長補短的開發模式,原生代碼部分利用Web View插件或者其它框架為H5提供容器,程序主要的業務實現、界面展示都是利用與H5相關的Web技術進行實現的。比如京東、淘寶、今日頭條等APP都是利用混合開發模式而成的。
如何快速完成一個混合APP
我們提供了一套JS和Native交互規范,前端通過JS,就可以調用Native的功能了。只需要在頁面中引入supconit://hcmobile.js(無需下載)。

我們還提供了豐富的原生功能插件,直接調用就可以了,比如相機、錄音、定位、藍牙等系統功能,以及眾多擴展插件,如第三方登錄、百度文字識別、語音聽寫等(點擊查看API)。
調用拍照功能示例代碼:
// 引用js
<script src='supconit://hcmobile.js'></script>
<script>
// 監聽’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);
});
}
至此,一個簡單的前端工程就完成了,如何測試,又如何一鍵打包成Android、iOS端呢?
別着急,接下來更簡單,只需要在易動平台創建一個應用,填寫我們前端工程的入口地址即可。
創建完成后,添加我們剛剛用到的兩個插件,拍照和圖片預覽,這里我已經添加了。

我是安卓手機,這里只選擇打包一個安卓APP進行測試,點擊打包,等待打包完成,掃碼安裝。

安裝后,首頁顯示效果

點擊拍照

如果有異常,這里還有提供IDE調試工具,有個三分鍾使用教程(點這里)。

測試完成后,還可以把打包的Android、iOS端上架到應用市場和蘋果商店,是不是很心動,快來體驗一下吧~
