iPhone 上“添加到主屏幕”的 Javascript?

问题描述 投票:0回答:7

是否可以使用 Javascript 模拟 Mobile Safari 书签菜单中的“添加到主屏幕”选项?

类似于 IE 的

window.external.AddFavorite(location.href, document.title);
可能吗?

javascript iphone mobile-safari bookmarks homescreen
7个回答
65
投票

在 Safari 实现 Service Worker 并遵循 Chrome 和 Firefox 设定的方向之前,无法以编程方式将您的应用程序添加到主屏幕,或者让浏览器提示用户

但是,有一个小库会提示用户去做,甚至会指向正确的位置。很好吃。

https://github.com/cubiq/add-to-homescreen


58
投票

在 MobileSafari 中添加任何书签(包括主屏幕上的书签)的唯一方法是使用内置 UI,而 Apples 无论如何都不提供从页面内的脚本执行此操作。事实上,我很确定在桌面版 Safari 上也没有这样做的机制。


8
投票

有一个开源的 Javascript 库提供了相关的东西: 移动书签气泡

Mobile Bookmark Bubble 是一个 JavaScript 库,它在您的移动 Web 应用程序底部添加一个促销气泡,邀请用户将该应用程序添加到他们设备的主屏幕上。该库使用 HTML5 本地存储来跟踪促销是否已经显示,以避免不断地唠叨用户。

此库的当前实现专门针对 Mobile Safari,即 iPhone 和 iPad 设备上使用的 Web 浏览器。


6
投票

2020年了,这在Mobile Safari上还是做不到的

下一个最佳解决方案是显示有关将页面添加到主屏幕的步骤的说明。

// Check if user has seen the message already
const hasSeenInstallPopup = localStorage.getItem("hasSeenInstallPopup");

// Detects if device is on iOS 
const isIos = () => {
  const userAgent = window.navigator.userAgent.toLowerCase();
  return /iphone|ipad|ipod/.test( userAgent );
}

// Detects if device is in standalone mode
const isInStandaloneMode = () => ('standalone' in window.navigator) && (window.navigator.standalone);

// Checks if should display install popup notification:
if (!hasSeenInstallPopup && isIos() && !isInStandaloneMode()) {
  showInstallMessage();
  localStorage.setItem("hasSeenInstallPopup", true);
}

图片和代码片段来自这篇很棒的文章,其中涵盖了这个问题和许多其他关于如何让你的 PWA 感觉 iOS 原生的技巧。


3
投票

在 javascript 中,这是不可能的,但是在“Web Clips”的帮助下,我们可以在 iPhone 中创建一个“添加到主屏幕”图标或快捷方式(通过 .mobileconfig 的代码文件)

https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/iPhoneOTAConfiguration/ConfigurationProfileExamples/ConfigurationProfileExamples.html

http://appdistro.cttapp.com/webclip/

创建 mobileconfig 文件后,我们可以在 iphone safari 浏览器安装证书中传递此 url,完成后检查您的 iphone 主屏幕,有您的网页或 webapp 的快捷方式图标..


2
投票

这也是另一个很好的主屏幕脚本,支持 iphone/ipad、Mobile Safari、Android、Blackberry touch 智能手机和 Playbook。

https://github.com/h5bp/mobile-boilerplate/wiki/Mobile-Bookmark-Bubble


1
投票

TLDR:@Craig 在上面有更好的答案。

以下是我的原始答案,但我认为它没有充分回答问题。今天我会说你必须尝试一个库来模拟这种效果,因为 WebViews (PWAs) 不支持 A2HS。

@Kerrick 我想删除我的答案,但不能,因为它已被接受。

旧答案:

是的。大多数现代浏览器都支持渐进式 Web 应用程序的添加到主屏幕(或 A2HS)功能。引用Mozilla Web Docs文章

添加到主屏幕是一项可用的功能 允许用户“安装”网络应用程序的现代浏览器,即。添加一个 主屏幕的快捷方式。

另请参阅:caniuse.com 上的 A2HS 浏览器支持

© www.soinside.com 2019 - 2024. All rights reserved.