1 基本原理
手机操作系统-原生App-浏览器-Web 应用
原则上:
原生代码不实现业务逻辑,只处理 js 不擅长或手机操作系统提供的 API,比如:相片和视频处理,与其他App交互,SDK 对接
界面、业务逻辑由 Web 实现
2 出发点
基于现实原因,没有足够的原生App开发人员,业务的不确定性,导致了产品的频繁变更。总的来说就是开发成本、开发效率和产品体验之间平衡。
3 技术实现
3.1 js 与 Native 的互相调用
使用 DSBridge 处理两者交互,在 Android 和 IOS 中都可以使用,但不清楚项目现在为何不更新了。
基本上是 js 调用 Native,印象中没有使用 Native 调用 js 发式,这样会简单一点,应用会健壮点吧。
3.2 本地Html VS 线上网站
目前上架的应用使用的是将 html 相关文件打包到应用安装包内,这样体验会好一点。开发时使用线上地址便于调试。
3.3 刘海屏和底部危险区域
应用启动后计算出刘海屏和底部危险区域高度,web 初始化是获取相关高度并做适配性处理。
4 应用实例
安卓原生功能示例
ios原生功能示例
如果想看下实际效果可以在主流应用商店搜索【有才猫】demo App,如:小米应用商店,App Store
5 不足
第一次安装启动时会有明显白屏出现,安卓通过在 Web 初始化完成后,再关闭启动图,减少白屏时间。iOS 的白屏时间短暂暂未做优化处理。