APP中的 H5和原生页面如何分辨、何时使用
一、APP内嵌H5和原生的区别
1、原生的页面运行速度快,比较流畅。
H5页面相对原生的运行性能低,特别是一些动画效果有明显卡顿。
2、H5页面的很多交互都没有原生的好,比如弹层、输入时候的页面滑动 等。H5的效果相对比较low,没有原生的好看,也没有原生默认的动画等效果。
3、原生APP修改页面要重新发布,等待审核(现在iOS的审核速度已经提高到1天到2天)。
H5页面的修改 可以随时上线,不用等待审核。
4、H5跨平台,iOS和android需要各自开发。相对原生,H5开发成本低。
5、原生APP能很好的使用设备底层功能,如摄像头、方向传感器、重力传感器等。H5有所限制。
比如android里的H5对摄像头和方向传感器就需要再多做一些处理。再比如你不想用系统默认的手机相册样式,就要用原生来开发了。
6、H5过度依赖于网络,网络不好的时候卡到不行,并且刚打开看到的都是一个空白页面。
默认的H5页面每次打开都会重新请求页面(可以做缓存,不过基本很少有做的)。
H5比原生更费流量,H5除了加载html还要加载js、css这些资源文件,相比原生网络加载速度慢。
二、APP原生和H5页面如何分辨
1、android手机可以修改设置: 设置—》开发者选项—》显示布局边界(Show layout bounds) 。
这样就能看到控件的布局了,如果包含图片、文字等信息的一整块区域只有一个边框,应该就是H5实现的。
iOS在真机上没有这个选项。一般开发人员可以 用mac上的Reveal软件 来查看APP的布局,或者用网络抓包来分析是否为H5页面。
2、新打开页面,如果页面是个空页面,基本就是H5页面。原生的页面一般都会有一些控件提前放在页面中。
如果空页面 上拉还有大块黑色的背景,就是H5页面,不过现在很多开发人员已经做了优化,不会显示黑色的大色斑。
3、关闭网络后,如果是整个的空白页,这个基本就是H5页面。如何页面还有控件基本就是原生的。
4、下拉刷新的时候H5会有一个明显的刷新现象,比如闪现、导航栏标题消失等。
原生的下拉刷新没有明显现象,很平滑。
5、如果开发人员没有禁用掉WebView的长按手势,会弹出一个系统默认的快捷菜单:拷贝、查询、添加、分享。这个页面就是H5页面。
6、如果打开一个页面顶部有个进度条,就是H5页面。当然很多H5页面也没有加进度条。
7、页面的底部导航 在上拉的时候 如果跟着一起滚动,就是H5页面。
8、H5弹框、页面跳转等和原生的效果都不一样,可以仔细看下。
9、H5页面点击 输入框,弹出的键盘上面一般都有“完成”按钮,原生的没有。
三、APP原生和H5什么时候使用
1、核心需求 要用原生,比如淘宝里的产品详情页、订单页、支付页等。
非核心需求 可以考虑用H5,遇到功能调整,可以快速发布。比如淘宝首页的特色好货、热门市场等栏目 需要经常变动,用H5来做比较灵活。
2、阶段性的营销活动页面,特别是功能、布局等经常需要修改的需求,可以用H5来做。比如节日的有奖活动页面,经常需要调整,用H5做会更灵活。
四、现在常用的方案
1、有四种方式来做APP:Web App(纯Web页面)、Hybrid App(web和原生混合开发)、 Native App(原生APP)、Weex和React Native(用类似js、html来写原生效果的页面)。
2、现在没有全部用H5来做APP的,交互体验太差。
3、Hybrid App 前几年火过,其努力去打造类似于Native App 的体验,但仍受限于技术,网速,等等很多因素。并不是很完美。
4、现在很多大公司在尝试用Weex和React Native或者DeviceOne 来实现一些经常改动的页面或者活动营销页面,可以随时发布,交互效果还和原生的一样。其中Weex站在了React Native这个巨人的肩膀上,借鉴并做了更好的尝试,我个人更建议用Weex。
APP中的 H5和原生页面如何分辨、何时使用的更多相关文章
- APP中的 H5和原生页面如何分辨?
一.APP内嵌H5和原生的区别 1.原生的页面运行速度快,比较流畅.H5页面相对原生的运行性能低,特别是一些动画效果有明显卡顿. 2.H5页面的很多交互都没有原生的好,比如弹层.输入时候的页面滑动 等 ...
- 客户端相关知识学习(一)之混合开发,为什么要在App中使用H5页面以及应用场景、注意事项
混合开发 随着移动互联网的高速发展,常规的开发速度已经渐渐不能满足市场需求.原生H5混合开发应运而生,目前,市场上许多主流应用都有用到混合开发,例如支付宝.美团等.下面,结合我本人的开发经验,简单谈一 ...
- 利用浏览器调试APP中的H5页面
安卓手机的情况下,可以用chrome浏览器来调试. 打开地址: chrome://inspect/#devices 手机用USB数据线连接电脑,并启动USB调试模式. 只要在APP中打开H5页面,界面 ...
- 在iOS APP中使用H5显示百度地图时如何支持HTTPS?
现象: 公司正在开发一个iOSAPP,使用h5显示百度地图,但是发现同样的H5页面,在安卓可以显示出来,在iOS中就显示不出来. 原因分析: 但是现在iOS开发中,苹果已经要求在APP中的所有对外连接 ...
- Hybrid App中原生页面 VS H5页面(分享)
本文部分转自 http://www.jianshu.com/p/00ff5664e000 现有3类主流APP,分别为:Web App.Hybrid App(混合模式移动应用,Hybrid有“混合的” ...
- Hybrid App中原生页面 VS H5页面
Hybrid App中原生页面 VS H5页面 现有3类主流APP,分别为:Web App.Hybrid App(混合模式移动应用,Hybrid有"混合的"意思). Nativ ...
- 如何在嵌套的app中运用vue去写单页面H5
本文主要介绍移动端.为了避免移动端兼容出现各种奇奇怪怪的bug,所以秉承着能不用复杂的语法就不用,尽量用最基础的语法. 可用惯了各种ES6语法的童鞋们,写原生真是头疼,再加上各种领导催工期,肯定是内心 ...
- APP中内嵌H5页面为什么不能下载?
在APP中内嵌H5页面,若页面上存在下载链接,没有任何反应,为什么呢? 原因是app中内嵌的H5页面是WebView解析的,什么是WebView呢? 在Android手机中内置了一款高性能webkit ...
- APP内的H5页面测试方法, 移动端的浏览器(例如UC浏览器)测试方法
前言: 用appium做UI自动化,测试APP里面的H5和测试手机浏览器打开的H5的操作流程上是有所区别的.比如要测试APP内嵌的H5需要先操作appium启动APP,然后通过context切到web ...
随机推荐
- 502 Bad Gateway(Nginx) 查看nginx日志有如下内容
2016/09/01 09:49:41 [error] 79464#79464: *3 user "nagios" was not found in "/usr/loca ...
- INC函数
1.inc(integer) inc(a)等于a:=a+1; 例: i := 100; inc(i); 结果:i等于101 2.inc(integer,integer) inc(a,b)等于a:=a+ ...
- 超市RFID结算系统项目进度与总结
超市RFID结算系统项目进度与总结 超市RFID结算系统本周末(明天演示),目前进度如下: 一.后台PHP端已经完成了大部分的工作,包括以下: 1.数据库的建立(目前只包括用户表.商品信息表.购物车表 ...
- iOS搜索框UISearchBar
当你在seachBar中输入字母之前的时候,只是用鼠标选中searchBar的时候,如图 终端输出截图如下:(这个时候调用先shouldBeginEditing,之后调用didBeginEditing ...
- Windows录音API学习笔记(转)
源:Windows录音API学习笔记 Windows录音API学习笔记 结构体和函数信息 结构体 WAVEINCAPS 该结构描述了一个波形音频输入设备的能力. typedef struct { W ...
- CSS长度单位详解
序言 长度单位可以总体的分为绝对长度单位和相对长度单位.CSS中最为大家熟知的无疑是px和em,但与此同时还存在pt, rem, vw, vh等其他计量单位,使用好它们可以大大增长我们的开发效率.本篇 ...
- 解决IE增强配置的问题
windows2003上: win 2008上, 其实ie8就是在2008上的 为所有用户启用 IE ESC 关闭所有 Internet Explorer 的实例. 单击"开始", ...
- 解開32位元Win 7記憶體4GB限制
解開32位元Win 7記憶體4GB限制: ReadyFor4GB 檔案下載:ReadyFor4GB https://sites.google.com/a/joytown.tw/bai-jia-zhi/ ...
- iOS 之 二维码生成与扫描(LBXScan)
参考:https://github.com/MxABC/LBXScan 步骤如下: 1. 下载 通过参考网址进行下载. 2. 导入 导入整个LBXScan文件夹 3. 配置 在pch中加入 #impo ...
- QStandardItemModel的简单应用
The QStandardItemModel class provides a generic model for storing custom data. QStandardItemModel提供了 ...