小程序开发 | 青训营笔记

78 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第15天

重点记录小程序技术解析相关笔记,自己组织总结的一些记录,如有不妥,还望不吝赐教。

小程序原理

最简单的开发方式就是使用web技术来开发,课程中老师介绍了WebView + JSBridge的方式。

WebView可以简单理解为app内置的浏览器,可以在app内展示网页。 但当我们希望开发者能够使用js调用更多app上的功能,比如打开地图或者其他应用时,单靠web api无法实现,这个时候就需要用到 JSBridge
顾名思义,jsbridge就是js和native代码之间的桥梁,使两者能够相互沟通和利用,实现jsbridge的方式很多,比如:代码注入、url拦截等。

一些问题:

无网络的情况体验不佳

网页切换体验不佳

如何管控保证安全

查看如下代码:

if (Date.now( ) > new Date( '2022-02-02' )) {
    document . body. innerHTML = '<h1>hello world</h1> '
}

这里我们的web方案走不通,要解决上述的三个问题,我们需要一个具有以下特点的方案:

  • 开发门槛低
  • 接近原生的使用体验
  • 能够保证安全可控

开发门槛低

即使用的技术应该能够容易地被大多数人掌握,比如我们常说的前端三大件:HTML、CSS、JS

接近原生的使用体验

为了保证使用体验,我们要解决资源加载、渲染、页面切换三大问题。

资源的加载可以采用资源离线化的方式,

渲染:在解决第三个问题时我们需要禁用dom操作,那么我们就要选择一些可以不操作dom对页面进行渲染的框架,比如react,我们只需要关系数据流而不需要操作具体的dom就可以根据数据来渲染页面。

页面切换时可以通过保留切换前的页面降低成本

保证安全可控

将dom的api都禁用掉