随着H5标准的发布,使得移动应用的开发有了更多的选择,出于效率、成本、质量等原因,移动应用不再只是单纯的原生开发。
今天网()就简单总结一下目前的三大主流移动应用开发类型。
一、WebApp、HybridApp、NativeApp简单介绍
WebApp
WebApp是指使用前端语言编写的可以用于多平台的应用,运行在手机或浏览器上,对手机性能要求比较高。
受限于手机的webView,页面普遍存放于服务器。
更新容易,更新无需通知用户,不用手动升级。
开发成本低,维护简单。
体验差,用户留存较低。
网络依赖性较强。
HybridApp
HybridApp是指使用原生语言与前端语言编写的只能用于iOS和Android平台的应用,但其总体特性更接近NativeApp。
前端JS调用原生提供的JS的API,实现功能。
更新较容易,大部分需要无法自动更新,中控易动可实现更新无需通知用户,不用手动升级。
开发成本低,维护简单。
受限于手机的webView。
仍受限于技术,网速。
体验好,用户留存高。
NativeApp
NativeApp是指基于手机操作系统如iOS、Android,使用原生程式编写的应用,运行在手机上。
常用语言
iOS:Objective-Cswift
Android:JAVA
开发成本高,需要两端开发人员,维护成本高。
更新较难,需要上传应用市场,需要手动升级。
用户体验好,留存率高。
性能稳定,反应速度快。
二、WebApp、HybridApp、NativeApp与原生的交互
WebApp:h5与WKWebView交互
例如:WKWebView加载html链接展示页面:
oc中WKWebView实现:
//与前端约定统一标识符:nameID
WKWebViewConfiguration*config=[[WKWebViewConfigurationalloc]init];
WKUserContentController*wkUController=[[WKUserContentControlleralloc]init];
[wkUControlleraddScriptMessageHandler:selfname:@"nameID"];
config.userContentController=wkUController;
//创建WKWebView
self.webView=[[WKWebViewalloc]initWithFrame:CGRectMake(0,0,ScreenWidth,ScreenHeight)configuration:config];
self.webView.navigationDelegate=self;
[self.viewaddSubview:self.webView];
//加载url
NSURL*baseUrl=[NSURLURLWithString:self.url];
NSMutableURLRequest*request=[NSMutableURLRequestrequestWithURL:baseUrl];
[_webViewloadRequest:request];
#pragmamark--WKScriptMessageHandler
-(void)userContentController:(WKUserContentController*)userContentControllerdidReceiveScriptMessage:(WKScriptMessage*)message{
//判断是nameID
if([message.nameisEqualToString:@"nameID"]){
//写点击按钮的执行方法
}
}
HTML中按钮点击事件中实现:
functionjsFunction(){
window.webkit.messageHandlers.nameID.postMessage({});
}
HybridApp:选择第三方框架,根据JSAPI接口调用。例如:中控易动,根据插件文档使用JSAPI接口使用
例如:在中控易动创建应用、添加插件、参考插件API接口参考,这边以AppInfo插件为例:
示例代码:
复制示例代码,写在调用的前端按钮事件里面:
functiongetAppInfo(){
//获取app相关信息
navigator.appInfo.getInfo(function(result){
alert(JSON.stringify(result));
},function(error){
alert(error);
});
}
NativeApp:使用oc编码。例如:
UIButton*senBtn=[UIButtonbuttonWithType:UIButtonTypeCustom];
senBtn.frame=CGRectMake(0,0,100,100);
[senBtnaddTarget:selfaction:@selector(senClick)
forControlEvents:UIControlEventTouchUpInside];
[self.viewaddSubview:senBtn];
-(void)senClick{
//写按钮点击方法
}
相关文章
-
【抖音文案】英语励志名言短句霸气(英语励志名言短句霸气)
1.Believing in yourself is the key to success.(相信自己是通往成功的途径! 2.Always believing in yourself.never lose your heart!(一定要相信自己,决不要气馁.) 3.Rome wasn’t built in a day. Work harder and practice more. Your har
2024-03-17 22:00
热门标签
-
饿了么会员划算吗(饿了么超级会员有什么用?特权有哪些)
2024-03-21 20:49
-
闲鱼转卖什么意思(闲鱼一键转卖操作方法与技巧介绍)
2024-03-21 20:49
-
极有家是什么意思(淘宝极有家是正品吗?与天猫有何区别)
2024-03-21 20:49
-
新手做拼多多怎么挣钱?做拼多多要注意什么?
2024-03-21 20:49
-
小作坊加工什么挣钱(适合一人干的小作坊项目推荐)
2024-03-21 20:49
-
京东快递几点停止送货(京东快递显示派送异常不成功的解决方法)
2024-03-21 20:49
-
敦煌网新增Autry、DELVAUX、Diesel等品牌知识产权保护公告
2024-03-21 20:49
-
qq密码忘了怎么找回密码(手机QQ修改密码的教程方法)
2024-03-21 20:49
-
京东白条强制开通技巧,京东怎么绑定银行卡支付功能
2024-03-21 20:49
-
新手拼多多企业店铺怎么做?企业店能注册几个?
2024-03-21 20:49
-
淘宝五一有活动吗2021(淘宝五一优惠券在哪里?怎么领取)
2024-03-21 20:49
-
获取本机的IP地址的办法,如何查电脑的ip地址查询方法
2024-03-21 20:49
-
全角半角区别怎么输入(电脑全角和半角切换方法)
2024-03-21 20:49
-
拼多多双十二怎么没有单?怎么爆单?
2024-03-21 20:49
-
拼多多开团什么意思?拼团的团长和团员主要区别浅析
2024-03-21 20:49
-
拼多多商家客服电话(关于拼多多商家客服电话转人工的方法介绍)
2024-03-21 20:49
-
京东不发货怎么赔偿(京东不发货能得三倍赔偿吗?怎么申请)
2024-03-21 20:49
-
68的腰围是多少尺(裤腰怎么算尺码?换算方法介绍)
2024-03-21 20:49
-
拼多多新手怎么申请缺货?缺货得赔多少?
2024-03-21 20:49
-
亚马逊入驻保证金多少(亚马逊跨境电商加盟收费标准详解)
2024-03-21 20:49