多端开发
# 多端开发
# hybrid
混合使用 Native 和 web 技术开发,即前端和客户端的混合开发。核心是快速迭代,无需审核。
主流技术框架
web 渲染:Cordova(前身是 PhoneGap)
原生渲染:React Native、 Weex
混合渲染:微信小程序
具体实现:前端的静态页面交给客户端,以文件形式存储在 app 中,客户端在 webview 中使用 file 协议加载静态资源文件。
使用 NA:体验要求极致,变化不频繁(新闻资讯类 app 的首页)
使用 hybrid:体验要求高,变化频繁(新闻资讯类 app 的新闻详情页)
使用 h5:体验无要求,不常用(如活动、反馈、举报页面)
hybrid 和 h5 的比较:
- 开发运维成本高,适用于产品的稳定功能,体验要求高,迭代频繁(产品型);
- h5 适用于单次的活动页面或不常用页面(运营型);
hybrid 更新上线流程
上传静态资源包到服务端,客户端每次启动检查包文件版本是否更新,下载新的包文件并解压修改成新的版本号。 (服务端的版本和 zip 包维护,更新 zip 包之前,先对比版本号。)
# url scheme 介绍
url scheme 是一种类似于 url 的链接,是为了方便 app 直接互相调用设计的 具体为,可以用系统的 OpenURI 打开一个类似于 url 的链接(可拼入参数),然后系统会进行判断,如果是系统的 url scheme,则打开系统应用,否则找看是否有 app 注册这种 scheme,打开对应 app
需要注意的是,这种 scheme 必须原生 app 注册后才会生效,如微信的 scheme 为(weixin://)
# webView
webView 是移动端(原生)提供的运行 JavaScript 的环境,它是一种嵌入式浏览器,原生应用可以用它来展示网络内容。可与页面 JavaScript 交互,实现混合开发,其中 Android 和 iOS 又有些不同:
Android 的 WebView 采用的是低版本和高版本使用了不同的 webkit 内核,4.4 后直接使用了 Chrome。
iOS 中 UIWebView 算是自 IOS2 就有,但性能较差,特性支持较差,WKWebView 是 iOS8 之后的升级版,性能更强特性支持也较好。
WebView 控件除了能加载指定的 url 外,还可以对 URL 请求、JavaScript 的对话框、加载进度、页面交互进行强大的处理.
# 博文
如何实现一个 Hybrid 框架 https://github.com/quickhybrid/quickhybrid/issues/12 (opens new window)