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

IT技术 javascript iphone mobile-safari bookmarks homescreen
2021-01-23 12:30:23

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

window.external.AddFavorite(location.href, document.title);可能类似于IE的东西

6个回答

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

但是,有一个小库会提示用户执行操作,甚至指向正确的位置。很好用。

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

遗憾的是,这是目前可用的最佳解决方案。
2021-04-09 12:30:23
库 [link .../add-to0homescreen] 有效,但是,最后一次调用 invoke 是 addToHomescreen({}); 括号内必须有花括号,表示您没有传递参数。
2021-04-11 12:30:23

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

@David 不适用于网络应用程序。知道他们可以将书签添加到主屏幕的用户并不多。恕我直言,如果有一个链接/按钮可以触发带有有用消息的对话框,那就太好了。
2021-03-18 12:30:23
@David 这不是乞讨。iOS 上的 Web 应用程序可以作为本机应用程序运行,如果将它们添加到主屏幕,则可以全屏运行。甚至离线模式也是可能的,所以如果我们可以使用 javascript 将它添加到主屏幕(使用 corse 的适当对话框)会很酷。
2021-03-25 12:30:23
谢谢,我怕不是。window.navigator.standalone如果它在 Mobile Safari 中运行,我决定检查并敦促他们添加它。
2021-03-30 12:30:23
@the_nakos 这就是为什么永远不会有一种简单的方法来“添加到主屏幕”,因为它会创建一个惊人的 Apple 应用程序商店的替代品,具有惊人的结账和惊人的应用程序内购买。这不是他们为阻止它所做的唯一事情。过去,当移动 safari 已经运行得更快的引擎9to5mac.com/2014/06/03/...
2021-03-31 12:30:23

有一个开源的 Javascript 库提供了一些相关的东西: mobile-bookmark-bubble

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

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

Android(或者,呃,我敢说,黑莓)有什么类似的吗?
2021-04-04 12:30:23

在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 主屏幕是否有您的网页或 web 应用程序的快捷方式图标..

你也可以使用“apple configuratior 2”来创建一个webclip
2021-03-14 12:30:23
Jeet,你能解释一下我错在哪里吗 是的,这是正确的 根据脚本,无法创建添加到主屏幕,但使用我们可以创建的“网络剪辑”,因为我们必须创建 .mobileconfig 文件
2021-03-24 12:30:23
感谢@jaepage 为它..cttapp.com 是一个在线网站,您可以在其中创建自己的 mobilecofig 文件,现在他们关闭了他们的网页,因此您可以使用 developer.apple.com/library/content/documentation/... 这个网站很快我将为它创建我们自己的网络工具......
2021-04-06 12:30:23
这并没有提供问题的答案。一旦您拥有足够的声誉,您就可以对任何帖子发表评论相反,提供不需要提问者澄清的答案-来自评论
2021-04-07 12:30:23

在 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 原生的技巧。

此自定义警报将一直显示,它需要使用 cookie 或会话进行更多解释,以便为未安装的应用程序用户仅显示一次或每“X”天显示一次。拥有完整的代码可能会很好:)
2021-03-16 12:30:23
@gtamborero 已修复。
2021-04-12 12:30:23