什么是混合开发:
概述:
Hybrid App主要以JS+Native两者相互调用为主,从开发层面实现“一次开发,多处运行”的机制,成为真正适合跨平台的开发。Hybrid App兼具了Native App良好用户体验的优势,也兼具了Web App使用HTML5跨平台开发低成本的优势。
目前已经有众多Hybrid App开发成功应用,比如美团、爱奇艺、微信等知名移动应用,都是采用Hybrid App开发模式。
Image.png
混合开发的优点与缺点:
优点
各平台表现一致:
内容更新不需要内容审查:
缺点:
1.与原生开发有差距
2.前端代码容易被盗取
混合开发中拍照和打电话功能的代码片段:
<html> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <title>混合开发</title> <style> html{font-size:15.625vw;} img{width:100%;height:auto;} </style> <script type="text/javascript"> document.addEventListener('plusready', function(){ //console.log("所有plus api都应该在此事件发生后调用,否则会出现plus is undefined。" }); function getCamera(){ var cam = plus.camera.getCamera( 2); var Resolutions = cam.supportedImageResolutions[0]; //: 字符串数组,摄像头支持的拍照分辨率 var Formats = cam.supportedImageFormats[0]; //: 字符串数组,摄像头支持的拍照文件格式 //capturedfile cam.captureImage( function(capturedFile ){ //拍照成功 //alert('capturedfile');// plus.io.resolveLocalFileSystemURL( capturedFile, function(entry){ //成功 var img = document.createElement("img"); img.src = entry.toLocalURL(); document.documentElement.appendChild(img); }, function(){ //失败 } ); }, function(){ //拍照失败 }, function(){ //拍照参数 format : Formats } ); } //打电话 function callPhone(){ document.getElementById("audio").play(); plus.device.setVolume(1); //调用此方法获取程序是否一致保持唤醒状态。 plus.device.isWakelock(); //设置设备常亮 plus.device.setWakelock( true ); //设置震动事件单位为毫秒 plus.device.vibrate( 1000 ); //拨打电话,第一个参数为电话号码,第二个true则打开拨打电话界面,如果false则直接拨打 plus.device.dial('18330822256',false); // } </script> </head> <body> <button onclick="getCamera()">照相</button> <button onclick="callPhone()">10086</button> <audio src="15409355.aac" id="audio"></audio> </body> </html>