大前端技术系列:TWA技术+TensorFlow.js => 集成原生和AI功能的app

前端技术系列:TWA技术+TensorFlow.js => 集成原生和AI功能的app

(

本文内容为melodyWxy原作,git地址:https://github.com/melodyWxy/twa-tf.js ,

首发于博客园 散场丶丶:https://www.cnblogs.com/sanchang/p/11818604.html

)

什么是TWA

简单来讲,TWA(Trusted Web Activity 可信任的网络应用)即: 基于Chrome Custom Tabs,利用谷歌浏览器提供的api,实现强大功能的桌面应用技术。
如果说你对PWA这个概念有所了解,那么TWA的实现就相当于 PWA + 更丰富的原生API(以实现强大的原生功能)。

如果上面的描述,你依然没有清晰的认知,那么请先阅读下面的PWA和Chrome Custom Tabs介绍,然后再回过头来看这段解释。

什么是PWA

PWA(Progressive Web Application),译 渐进式网络应用程序,它起初的含义是 追求性能无限接近原生app的webapp。

现在它有了更官方的定义:PWA是一种可以提供类似于原生应用程序(native app)体验的网络应用程序(web app)。

whatever,差不多的意思。

PWA可以用来做很多事,包括在离线(offline)时应用程序能够继续运行功能(通过Service Workers技术实现),以及作为桌面上的一个单独的app(web app)。

如果你对service workers技术尚不太了解,那么你暂时只需要知道它的作用——可以提供离线加载的功能。当然,或许你应该更深入地去学会应用它。

PWA的特性

那么通过上述PWA的概念,我想我们可以推断出PWA的以下特性:

优化的性能(你可以通过分包按需加载等一万种方式来优化你的web应用,可以参考雅虎军规等一系列优化标准)

可以作为一个单独的app(桌面应用-native的能力)

也可以作为网页被浏览器打开(h5的能力)

离线模式(集成了Service Workers)

在线更新内容,不用下载包(h5的能力)

那么到现在为止,你应该理解了PWA是个什么东西————我们甚至可以称它为 桌面H5应用。

TWA的特性

那么我们回过头来思考TWA应该具备怎样的特性,在这之前,我这里写了这样一个公式:

PWA + js Bridge(由谷歌浏览器提供的调用更底层能力的api) == TWA

这里抛出一个问题,native app和web app的最大的表现区别在哪?

我认为,是native app可以直接调用操作系统api的能力。

那么这时候,TWA的特性应当很自然地被我们推断出来:

优化的性能(你可以通过分包按需加载等一万种方式来优化你的web应用,可以参考雅虎军规等一系列优化标准)

可以作为一个单独的app(桌面应用-native的能力)

也可以作为网页被浏览器打开(h5的能力)

离线模式(集成了Service Workers)

在线更新内容,不用下载包(h5的能力)

(调用)操作系统能力集成(native的能力)

所以说 TWA是集成native-app和web-app优点的app应用技术。

于是,我们大概知道TWA是个怎样的东西了。

但是我们仍然需要继续看下面对Chrome Custom Tabs的介绍,这方面我们更容易理解后面的实现流程。

Chrome Custom Tabs

这里先放一个官方介绍链接: Chrome Custom Tabs

Chrome Custom Tabs,译 谷歌自定义标签(或者谷歌定制标签)。

某方面来讲,它跟webview所做的事情相去不远。

webview的特点

我们要必要了解下webview的一些特征,以便分析CCT和webview不同的应用场景:

webview的优点

展示大小可以自由控制,可以全屏幕展示,也可以只展示在一定屏幕空间内。

可方便的与 native 进行交互(webView.addJavascriptInterface => jsBridge)。

可以使用 Service workers(这个上面提到过了,这里说下微拍堂app,应用的也是webview,并且也集成了这个功能)

webview的缺点

Wevbiew 是一个独立的安全沙盒,这意味着 cookie、storage 都不会与其他浏览器中的页面共享。
(这意味着WebView不会与浏览器共享状态并会因此增加维护开销。)

在低版本的安卓系统中,webivew 是不会随着 Chrome 进行更新的。

最后,Webview 中的 API 支持是有限的,例如以下 API 在 Webview 不被支持:
web push notifications

background sync

Chrome form autofill

Media Source Extensions (MSE)

Sharing API

Chrome Custom Tabs的特征

相较于webview,Chrome Custom Tab的特征:

优点

可让应用更好地控制其网络体验,并且无需借助WebView即可在本机内容和网络内容之间无缝切换;

可让应用自定义Chrome的外观和风格;

应用可以更改以下内容:
工具栏颜色

输入和退出动画

将自定义操作添加到Chrome工具栏,溢出菜单和底部工具栏

Chrome自定义标签还允许开发人员预先启动Chrome并预取内容,以加快加载速度。(这是一个强大的功能,提供的warmup函数, 可以预先解析DNS。尽管html5标准里也有所实现:pre-xx属性。)

缺点

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyygyd.html