189 8069 5689

flutter淘宝首页,淘宝 flutter

Flutter 与 iOS 原生 webView 对比

本文对比的是 UIWebView、WKWebView、flutter_webview_plugin(在iOS中使用的是WKWebView)的加载速度,内存使用情况。

创新互联公司主要从事网站设计、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务渑池,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

测试网页打开的速度,只需要获取 WebView 在开始加载网页和网页加载完成时的时间戳,时间戳的差即为打开网页的时间

为了使差异更明显,我们选择较为复杂的 新浪首页 进行加载的对比,为了减小网络对加载速度的影响,我们让手机连接同一个网络,分别进行 10 次测试然后取平均值,另外,我们需要关闭 WebView 的缓存,防止缓存对加载速度产生影响

下面使笔者进行 10 次测试所得到的数据

结果让我有点惊讶,一直以为 WKWebView 会是个王者。结果看,速度上 WKWebView 略慢一点,不过总体差异不大(该结果仅仅是测试新浪的结果,仅供参考啦)

在这里,笔者又加了一个测试,尝试记录从 viewController 的 viewDidLoad 到 webview 的 didFinish 时间,测试了新浪的数据,如下:

UIWebViewA : 4970、3808、3815、4250、3556 avg(4079.8) (加载完所有页面)

UIWebViewB : 4103、3124、3070、3256、2835 avg(3277.6)(加载sina完毕)

WKWebView : 3672、3032、2892、2912、2739 avg(3049.4)

flutter_webView : 4532、3901、4310、3496、3378 avg(3923.4)

其中可以看到,webView 有两行,UIWebViewB 的数据就是加载 sina 主站的时间;UIWebViewA 的数据是因为在加载完 sina 主站之后,新浪又加载了一个 ,所以导致总时间延长,不过即使按照 UIWebViewB 的数据来比较,也是 wkWebView 略胜一筹。

此处可以看出 flutter_webView 使用的是 wkwebView,所以它吃亏的主要原因是 flutter 包了一层。

结论:

速度(didStart - didFinish) UIWebView flutter_webview WKWebView

速度(viewDidLoad - didFinish)WKWebView UIWebView flutter_webview

这里查看内存使用的是 xcode 的 debug session 中的 memory。

首先看之前测试时,连续打开十次新浪的内存情况

接着我们在看一下打开淘宝首页的内存情况

从图上可以看出,WKWebView 在内存方面有很大的优势啊,UIWebView 的内存是真的伤啊,然后 debug 看了一下 flutter_webView,他使用的就是原生的 webView 。

他相比较原生 WKWebView 的内存开销稍大一点,从测试表现来看,一般大个 30 MB 左右。

结论:内存 WKWebView flutter_webview UIWebView

可以在 html5test 中对浏览器的兼容性进行评分,通过测试发现得分分别如下

因为 flutter 里使用的就是 WK,所以和原生的 WKWebView 一样都是 444 分,比 UIWebView 的 437 略胜一筹

结论:兼容性 WKWebView = flutter_webview UIWebView

UIWebView : 速度相比较 WKWebView 稍快一点,但是内存是一大硬伤,所以只要条件允许,就不推荐使用了

WKWebView : 速度略慢一点,不过差别不大,总体可以接受。是比UIWebView更好的选择,推荐使用。

flutter_webView_plugin :在iOS中使用的就是原生的WKWebView,所以总体和 native WKWebView 表现差不多。如果是混编项目中,因为它被包了一层,所以页面加载上存在一定的劣势,所以混编项目中仍然推荐使用 WKWebView。不过如果从多端考虑、以及项目可迁移等,那么使用也未尝不可,就是维护成本要增加一些,需要维护两套 webView。这个就需要根据自己的情况自己取舍了。

我的第一个flutter项目:购物app

这是个产假作业。故事是这样的。

生了娃,生活一地鸡毛。擦,碎钞机的需求怎么那么多。

当时,有一堆返利优惠券app比较火

...这里扯多了这篇文章被锁了....

我就想,来扒一扒,他们是怎么赚钱的。

结论:淘宝联盟。

淘宝联盟是阿里巴巴旗下的亲儿子,不那么有名是因为是个私生子吧,官网上还有个没听过的名号叫“阿里妈妈”,呵呵。淘宝联盟是给淘宝上推广商品的人用的,他们有一个专门的名称,叫做淘宝客,即“推广者(Publisher)”,他们帮电商平台推荐商品给别的买家,买家购买后,电商平台可以增加销量,而他们则可以获得推广佣金。

后来,知道京东也有自己的联盟平台,叫做“京东联盟”,拼多多也有,叫做“多多进宝”。

回到这些app的赚钱逻辑上来。对于用户而言,它们的两个噱头是:

“用我们的app买,你可以自用省钱”

“用我们的app,分享给别人下单,你可以赚钱!”

所以,这些app推广起来很容易啊,因为谁用谁赚钱呀!

那么为何不自己搭一个呢?

与其这些佣金落到别人口袋,不如自己直接做最顶层上线,发展出N个下线,岂不是躺着赚钱,哈哈哈哈哈

搞清楚赚钱逻辑之后,我发现淘宝联盟的api是很开放的。

商品链接: ;pid=mm_343780171_368000361_101527600308itemId=595640102734src=qtka_wxxtdx=1

其中,activityId是优惠券id,pid是推广者在阿里妈妈官网注册的id,只有这个id是我注册的,那么佣金就到我口袋去了,哈哈哈。

刚好练一下flutter,一次开发,两端使用,我一个人就可以了。app暂时取名为“小猪购”,拿粉红猪贴牌。

演示视频:

Flutter/IOS混和开发情况下,项目内首个Flutter页面导航无返回问题

在Flutter内部机制中,默认使用自动管理导航机制,该机制在Flutter与原生混和开发情况下,Flutter页面不一定作为项目的首页面,所以出现需要在首个Flutter页面使用导航返回的需求。

Flutter的AppBar中定义有属性:

该属性默认为YES,即默认为自动管理导航栏,该情况下其会在非第一个Flutter页面创建导航返回按钮,我们在AppBar中将其设置为false:

并且手动添加导航返回按钮:

完成


当前文章:flutter淘宝首页,淘宝 flutter
网站链接:http://cdxtjz.cn/article/dsddgdh.html

其他资讯