添加到 iPhone 的主屏幕后,Web 应用感觉响应速度变慢
Web app feels less responsive when added to iPhone's home screen
这个 Angular 2 应用程序在 iPhone 上添加到主屏幕时感觉响应不如 运行 在 Safari 中。
我通过将此添加到 index.html 使其具有 Web 应用程序功能:
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-title" content="Angular NavTabs">
如果你有几分钟时间,check it out on Github Pages。
在 Safari 中运行时,选项卡之间的切换非常灵敏。但是,从主屏幕启动应用程序时感觉滞后。
有什么我可以更改或添加到代码中以解决此问题的吗?
注意:如果我从应用程序中删除动画,也会发生同样的事情。
我录制了几个动画 GIF 来尝试展示差异,但除非您实际与应用程序交互,否则很难欣赏。
您遇到了臭名昭著的“300ms seconds delay”问题,该问题在 Safari Mobile 中修复了很长一段时间,但在您的应用程序添加到主屏幕后仍然存在。
使用FastClick 库应该可以解决问题。
要在 Angular 应用程序中使用它,请安装 npm 包:
npm install --save fastclick
然后将其添加到您的 main.ts
文件中:
import * as fastClick from 'fastclick';
fastClick.attach(document.body);
编辑:
在 iOS 11 中,添加到主屏幕的网络应用程序现在将托管在 WKWebView 而不是 UIWebView 中,这将使 FastClick 的使用过时:https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Safari_11_0/Safari_11_0.html
希望对您有所帮助。
这个 Angular 2 应用程序在 iPhone 上添加到主屏幕时感觉响应不如 运行 在 Safari 中。
我通过将此添加到 index.html 使其具有 Web 应用程序功能:
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-title" content="Angular NavTabs">
如果你有几分钟时间,check it out on Github Pages。
在 Safari 中运行时,选项卡之间的切换非常灵敏。但是,从主屏幕启动应用程序时感觉滞后。
有什么我可以更改或添加到代码中以解决此问题的吗?
注意:如果我从应用程序中删除动画,也会发生同样的事情。
我录制了几个动画 GIF 来尝试展示差异,但除非您实际与应用程序交互,否则很难欣赏。
您遇到了臭名昭著的“300ms seconds delay”问题,该问题在 Safari Mobile 中修复了很长一段时间,但在您的应用程序添加到主屏幕后仍然存在。
使用FastClick 库应该可以解决问题。
要在 Angular 应用程序中使用它,请安装 npm 包:
npm install --save fastclick
然后将其添加到您的 main.ts
文件中:
import * as fastClick from 'fastclick';
fastClick.attach(document.body);
编辑:
在 iOS 11 中,添加到主屏幕的网络应用程序现在将托管在 WKWebView 而不是 UIWebView 中,这将使 FastClick 的使用过时:https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Safari_11_0/Safari_11_0.html
希望对您有所帮助。