荷小鱼 x mPaaS | 借助 H5 容器改善 App 白屏、浏览器兼容等问题

随着5G、大数据、人工智能技术的应用,各类传统行业纷纷大力推进数字化转型升级。
而受疫情的影响,教育行业也在大幅加速线上化转型进程,各类在线教育应用也在借助各种力量拓张自己的移动端市场领域。
「荷小鱼」作为一款学科启蒙在线学习应用,同样也在这条赛道上,思考如何才能在林立的竞对竞争中拔得头筹,获得更多用户的青睐?
这个问题的解法有很多,但第一步肯定是提升用户体验、优化应用性能。
「荷小鱼」亟待解决的问题
原 App 内的部分页面,是通过 WebView 打开 H5 的方式来进行展示的,所以在打开一些重型页面时会出现以下的一些问题:
1. 网络问题导致白屏;
2. 浏览器兼容性问题;
3. 无离线下发功能;
4. 无法及时更新资源。
作为启蒙教育应用,「荷小鱼」的 App 页面除了需要嵌入基础框架代码和页面逻辑代码外,还需要嵌入多个字体库和多个音视频文件。
资源的多而大,导致页面非常容易收到网络的影响:网络不稳定时容易文件丢失、白屏加载资源时间长、造成网络线程阻塞等。
同时,也让 App 更新资源变得困难了很多:无法实时更新下发最新资源、缓存失效等。为技术团队在更新版本和调修 Bug 上造成了很大的阻碍。
“H5 容器+动态发布”
经过了多方调研,「荷小鱼」最终选择使用 mPaaS“H5 容器 + 动态发布服务”作为技术选型,用来解决 App 现阶段需要解决的难题。

首先,通过 mPaaS H5 容器中自带的 UC 内核浏览器,可以从根本上解决浏览器兼容性问题。
此外,mPaaS H5 容器支持离线包访问。离线包是将包括 HTML、JavaScript、CSS 等页面内静态资源打包到一个压缩包内。预先下载该离线包到本地,然后通过客户端打开,直接从本地加载离线包,从而最大程度地摆脱网络环境对 H5 页面的影响。
通过离线包的方式把页面内静态资源嵌入到应用中并发布,当用户第一次开启应用的时候,就无需依赖网络环境下载该资源,而是马上开始使用该应用。
最后,配合动态发布服务能力,在推出新版本或是紧急发布的时候,开发者可以把修改的资源放入离线包,通过更新配置让应用自动下载更新。因此,开发者无需通过应用商店审核,就能让用户及早接收更新。对页面资源进行动态更新,
应用的开发调试和发布部署
感谢来自「荷小鱼」的前端工程师雷文伟,通过实操演示,展示如何接入 mPaaS 以及如何完成应用发布。
弱网环境无影响、版本升级无感知
用户体验,是每一个应用都需要面临的生死题。尤其是在雨后春笋般的在线教育应用市场中,应用的性能对用户的留存效果显得更是尤为重要。
移动应用开发者从 DevOps 开始,到开发、性能监控、性能网络优化解决,在这一整套闭环流程中,通过借助 mPaaS 具备的开发测试、日志分析、卡顿分析、问题修复模式、热修复等各项能力,即可获取弱网环境无影响、版本升级无感知的用户体验。
E · N · D

点击文末阅读原文,观看CodeHub#4全程回放。
荷小鱼 x mPaaS | 借助 H5 容器改善 App 白屏、浏览器兼容等问题的更多相关文章
- 快成物流科技 x mPaaS | 小程序容器加持下的技术架构“提质增效”
导言 从 2017 年开始,GMTC"移动技术大会"就更名为"大前端技术大会".发展至今,混合开发.原生开发.前端开发等概念正在深度融合,组成"大 ...
- iOS H5容器的一些探究(二):iOS 下的黑魔法 NSURLProtocol
来源:景铭巴巴 链接:http://www.jianshu.com/p/03ddcfe5ebd7 iOS H5 容器的一些探究(一):UIWebView 和 WKWebView 的比较和选择 一.前言 ...
- iOS H5 容器的一些探究(一):UIWebView 和 WKWebView 的比较和选择
来源:景铭巴巴 链接:http://www.jianshu.com/p/84a6b1ac974a 一.Native开发中为什么需要H5容器 Native开发原生应用是手机操作系统厂商(目前主要是苹果的 ...
- iOS H5容器的一些探究(一):UIWebView和WKWebView的比较和选择
一.Native开发中为什么需要H5容器 Native开发原生应用是手机操作系统厂商(目前主要是苹果的iOS和google的Android)对外界提供的标准化的开发模式,他们对于native开发提供了 ...
- iOS - UIWebView和WKWebView的比较和选择-作为H5容器的一些探究
一.Native开发中为什么需要H5容器 Native开发原生应用是手机操作系统厂商(目前主要是苹果的iOS和google的Android)对外界提供的标准化的开发模式,他们对于native开发提供了 ...
- 【网易云信】H5 容器技术方案
Native 开发原生应用是手机操作系统厂商(目前主要是苹果的 iOS 和 Google 的 Android)对外界提供的标准化的开发模式,他们对于 Native 开发提供了一套标准化实现和优化方案. ...
- H5单页面手势滑屏切换原理
H5单页面手势滑屏切换是采用HTML5 触摸事件(Touch) 和 CSS3动画(Transform,Transition)来实现的,效果图如下所示,本文简单说一下其实现原理和主要思路. 1.实现原理 ...
- 移动端H5页面高清多屏适配方案
背景 开发移动端H5页面 面对不同分辨率的手机 面对不同屏幕尺寸的手机 视觉稿 在前端开发之前,视觉MM会给我们一个psd文件,称之为视觉稿. 对于移动端开发而言,为了做到页面高清的效果,视觉稿的规范 ...
- 解惑好文:移动端H5页面高清多屏适配方案 (转)
转自:http://mobile.51cto.com/web-484304.htm https://github.com/amfe/lib-flexible/blob/master/src/makeg ...
随机推荐
- 一起来看Java设计思想之23种设计模式
目录 怎么使用设计模式 23种设计模式 创建型模式 结构型模式 行为型模式 总结 怎么使用设计模式 为什么要使用设计模式? 编写代码,写接口.写类.写方法 用设计模式做设计的作用是什么? 指导.规定如 ...
- C#入门到精通系列课程——第2章编写C#程序
◆本章内容 (1)熟悉Visual Studio 2017开发环境 (2)编写第一个C#程序 (3)C#程序结构预览 (4)程序编写规范 (5)难点解答 ◆本章简述 要学习C#编程,必然要熟悉C#程序 ...
- Alpine镜像
Alpine Linux 是一个面向安全,轻量级的基于musl libc与busybox项目的Linux发行版. Alpine 提供了自己的包管理工具 apk,可以通过 https://pkgs.al ...
- C语言-内存函数的实现(二)之memmove
C语言中的内存函数有如下这些 memcpy memmove memcmp memset 下面看看memmove函数 memmove 为什么会需要memmove函数? int main() { int ...
- 三个dom xss常用tips
分享dom xss的三个案例 (1)javascript里面过滤单引号和双引号? 搭建环境: 只是过滤了单引号和双引号是可以xss的: 使用<>闭合script即可 </script ...
- day-26-封装-property装饰器-反射
一.super进阶 在多继承中:严格按照mro顺序来执行 super是按照mro顺序来寻找当前类的下一类 在py3中不需要传参数,自动就帮我们寻找当前类的mro顺序的下一个类中的同名方法 在py2中的 ...
- 7.If语句
if单选择结构 语法: if(布尔表达式){ //如果布尔表达式为true将执行的语句 } 例: import java.util.Scanner; public class IfDemo { pub ...
- Laravel 定时任务 任务调度 可手动执行
1.创建一个命令 php artisan make:command TestCommand 执行成功后会提示: Console command created successfully. 生成了一个新 ...
- 技术面试问题汇总第003篇:猎豹移动反病毒工程师part3
从现在开始,面试的问题渐渐深入.这次的三个问题,都是对PE格式的不断深入的提问.从最初的概念,到病毒对PE格式的利用,再到最后的壳的问题.这里需要说明的是,由于壳是一个比较复杂的概念,面试中也仅仅只能 ...
- 汇编环境搭建(vs2010(2012)+masm32)
我本地使用的环境VS2012(2010)+MASM32,下面的图是在网上找的几个博客拼在一起的,用的是vs2010,但是并不影响.(所有文件我都打包好了,如果懒的话可以直接下载这个包)地址是:http ...