混合开发

随着移动互联网的高速发展,常规的开发速度已经渐渐不能满足市场需求。原生H5混合开发应运而生,目前,市场上许多主流应用都有用到混合开发,例如支付宝、美团等。下面,结合我本人的开发经验,简单谈一下对混合开发的认识以及实现方式。

混合开发的优点

优点显而易见,由前端工程师写一个页面,多个平台都可以运行,省了Android和iOS工程师不少事,无形中提高了开发效率,节约了开发成本。

缺点

凡是使用过的人都知道,H5的界面显示在手机上,对点击、触摸、滑动等事件的响应并不如原生控件那样流畅,甚至还会出现卡顿。这样也很正常,如果体验跟原生控件一样好的话,也就没android(ios)工程师什么事了。

App中使用H5页面的原因

App里之所以用到H5页面,多是因为这个页面上的内容和结构都是属于高频变化的,使用Native App页面来实现的话则需要不断发布新版本才能实现,这一点不现实。而App都是可以调用原生系统浏览器或者集成到App里的浏览服务,因

此属于高频变化的内容和结构通过web页面来表现,再通过App来调用H5页面就可以轻松解决这个问题了。而且,经过优化专门适配移动端的H5界面已经很接近Native App的页面了,很多时候我都压根没有感受出来,也因此H5页面在

App上被广泛应用。

属于高频变化的内容和结构的页面多来自产品运营,一般包含:运营活动页面/广告/应用内推送消息等。

应用场景

一、App推送消息

App的推送消息从打开方式上来说可以分为两类,第一类是点击推送消息直接打开指定App页面,比如多数资讯类App(知乎、澎湃新闻等);第二类是点击推送消息打开一个H5页面,再通过点击web页面里的内容模块打开指定的App页面。

第二类推送消息在电商类/生活服务类等重运营的App里应用很多。比如图例中的大众点评对KTV商户的一次推送消息,这个推送消息里包含了多家的KTV商户,用户根据自己的喜好点击自己喜欢的KTV商户,进入该KTV商户的店铺详情

页面(指定App页面)

大众点评的一条KTV推荐的推送消息,打开后可以看到KTV商户列表

高德地图里的推送通知消息

二、App内运营活动/广告Banner

这种web在App上的使用方式同上文的推送消息有异曲同工之妙,主要也是应用在重运营的App上,对电商类App的一次营销活动,对音乐类App的一个音乐精选集/音乐人的推荐,通过首页的推荐Banner位引导打开丰富的内容页面都是一个

很好的方式。

虾米音乐首页我是歌手的Banner位

三、作为过渡的Native App页面的替代品

这一种使用方式不太常见,但是可以作为App早期开发中过程中的一种替代手段。由于web的开发效率相对App来说会高一些,在App开发的初期为了抢占用户和市场先机而不得不在规定的时间内发布一款功能完整的App时,可以使用这种

方式来进行操作,基础的核心功能使用Native App页面来实现,一些非核心功能/使用App页面实现起来耗费工时的页面可以使用web页面来实现,这一点在早期的钉钉App版本里应用很多。

钉钉里的签到功能,点击打开后是web页面

四、App调用第三方服务时

调用第三方服务并且涉及到复杂的数据验证处理又必须由第三方来完成时,这种方式是一个比较不错的解决方案,事实上,大量的第三方服务公司也是通过web来提供自己的产品和服务的。支付服务属于这一类范畴的最常见应用领域,例

如Paypal支付服务,Braintree支付服务,支付宝支付服务等。

集成到楚楚街上的中国银联支付

中国银联支付页面

在App里使用web页面时需要注意哪些事项呢?

  • 仅作为辅助功能,核心功能尽量不使用web来进行代替

  • web页面的导航层级不宜超过两级

    从 Native App页面进入web页面上时一般都是App的二级或者三级导航的深度了,进入到web页面后会脱离掉App的导航体系,用户心理会变得有一些疑惑或者不确定。如果web页面的层级又比较复杂比较深,会造成用户很难理解

    这个页面下一步又是什么页面,怎么回去上一个页面,在这种疑惑和恐慌中很有可能的情况是用户会关闭这个web页面回到Native App上相对熟悉的页面,导致web页面的流失率很高。

  • 注意对各种机型的适配

   这一点主要是考虑到开发出来的web页面响应式布局实现上,尽量使web页面表现的像Native App页面,同时解决多机型适配的问题,因为在A机型上展示良好的页面在B机型上可能完全展示不了。我在为Getone App接入Paypal支

   付时,开始时没有留意,后来发现我们选择使用的新版Paypal支付页面在大量的机型上都无法显示(Paypal提供的支付页面本身存在的适配问题),后来通过及时调整回旧版支付页面才解决这个问题。

  • 对于长期高频使用的Web页面要提供管理后台,方便运营人员编辑

    对于产品运营中要频繁使用的web页面最好开发出来管理后台,提供几个模板,运营人员每一次只需要编辑和添加内容即可实现需要的web页面,可以极大提高运营的效率。

参考

怎么在App里正确使用H5页面,你造吗?

转载于:https://www.cnblogs.com/kunmomo/p/11556115.html

客户端相关知识学习(一)之混合开发,为什么要在App中使用H5页面以及应用场景、注意事项...相关推荐

  1. 客户端相关知识学习(三)之Android原生与H5交互的实现

    Android原生与H5交互的实现 H5调用原生的方式 方式可能有多种,根据开发经验,接触过两种方式. 方法一:Android向H5注入全局js对象,也就是H5调Android 1.首先对WebVie ...

  2. 客户端相关知识学习(五)之什么是webView

    webview是什么?作用是什么?和浏览器有什么关系? Android系统中内置了一款高性能 webkit 内核浏览器,在 SDK 中封装为一个叫做 WebView 组件也就是说WebView是一个基 ...

  3. 客户端相关知识学习(四)之H5页面如何嵌套到APP中

    Android原生如何渲染H5页面 Android与 H5 的交互方式大概有以下 1 种: 利用WebView进行交互(系统API) iOS原生如何渲染H5页面 iOS 与 H5 的交互方式大概有以下 ...

  4. 客户端相关知识学习(二)之h5与原生app交互的原理

    前言 现在移动端 web 应用,很多时候都需要与原生 app 进行交互.沟通(运行在 webview中),比如微信的 jssdk,通过 window.wx 对象调用一些原生 app 的功能.所以,这次 ...

  5. 云网络相关知识学习列表

    网络相关知识学习列表 介绍 学习计算机网络相关知识的的技术文档 基础知识 1. 包括TCP/IP知识点 2. UDP协议 3. leaf-spine架构 4. IPv6 5. 大二层网络 6. VLA ...

  6. C#开发微信门户及应用(44)--微信H5页面开发的经验总结

    在我们开发微信页面的时候,需要大量用到了各种呈现的效果,一般可以使用Boostrap的效果来设计不同的页面,不过微信团队也提供很多这方面的资源,包括JSSDK的接口,以及Weui的页面样式和相关功能页 ...

  7. 【JavaScript】相关知识学习笔记

    JavaScript笔记 定义: ​ JavaScript是一种基于对象和事件驱动的,并具有安全性能的脚本语言. 特点: ​ 01.向HTML页面中添加交互行为 ​ 02.脚本语言,语法跟java类似 ...

  8. 【Flutter】Flutter 混合开发 ( 关联 Android 工程与 Flutter 工程 | 安卓页面中嵌入 Flutter 页面 | 安卓中启动 Flutter 页面 )

    文章目录 前言 一.创建 Android 项目 二.关联 Android 工程与 Flutter Module 工程 1.配置 Flutter Module工程 2.配置 build.gradle 3 ...

  9. 混合开发中,H5页面如何监听Android手机返回键

    1. 前言 混合开发中,如果当前操作的页面是H5写的.那么这个时候点击Android手机返回键,默认是返回到上一个页面,跟浏览器的回退功能是一样的,都是返回到历史记录中的前一个记录.看着好像没啥问题, ...

最新文章

  1. 忘记SAP系统Client 000的所有账号密码
  2. LeetCode--11_974_Subarray_Sums_Divisible_by_K
  3. Linux 如何安装程序的源代码软件包/源码程序包/源码包?
  4. 解决虚拟机 正在决定eht0 的ip信息失败 无链接-- 添加虚拟网卡
  5. BZOJ1010玩具装箱 - 斜率优化dp
  6. asp.net MD5数据加密和解密
  7. PHP中try、catch、finally的执行顺序
  8. 蓝宝石会升级bios吗_浴火重生 蓝宝石HD7950 Flex测BIOS提速
  9. 白盒测试技术—逻辑覆盖方法
  10. 网络安全-点击劫持(ClickJacking)的原理、攻击及防御
  11. gym101431D(传说中的构造(呸))
  12. 微信视频号运营 1000 问
  13. 2019年,大前端技术趋势程度解读
  14. docker java 内存_Java和Docker限制的那些事儿
  15. seo优化教程-免费SEO优化详细教程
  16. oracle报错:ORA-28001: the password has expired
  17. java工具类怎么写_常用的Java工具类——十六种
  18. 如何下载延庆区卫星地图高清版大图
  19. Waymo dataset+mmdet3d的坐标系问题
  20. 实战讲解时区处理基于SimpleDateFormat和LocalDateTime

热门文章

  1. 如何撤销正在审核的苹果app?
  2. 关于在ajax中传递中文引起的乱码问题。
  3. 程序员面试系列——大小端
  4. UNIX再学习 -- 网络IPC:套接字
  5. php ci 表单校验,表单验证 - CodeIgniter 中文手册|用户手册|用户指南|Wiki文档
  6. 盘点“逆市上涨”BZ第一季度回购亮点
  7. Exploring the Amazon Echo Dot, Part 2: Into MediaTek utility hell
  8. Mips KVM TrapEmulate implemented in Linux
  9. flume taildir 启动异常LifecycleSupervisor$MonitorRunnable.run
  10. JZOJ 3401 JZOJ 5673. 【GDOI2018Day1模拟4.20】爬山法