ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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


D
Dan Dascalescu

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

但是,有一个小型库会提示用户执行此操作,甚至指向正确的位置。工作一种享受。

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


可悲的是,这是目前可用的最佳解决方案。
库 [link .../add-to0homescreen] 有效,但是调用的最终调用是 addToHomescreen({});括号内必须有大括号,表示您没有传递任何参数。
L
Louis Gerbarg

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


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

有一个提供相关内容的开源 Javascript 库:mobile-bookmark-bubble

移动书签气泡是一个 JavaScript 库,可在您的移动 Web 应用程序底部添加一个促销气泡,邀请用户将应用程序添加到他们设备的主屏幕上。该库使用 HTML5 本地存储来跟踪促销是否已经显示,以避免不断唠叨用户。该库的当前实现专门针对 Mobile Safari,即 iPhone 和 iPad 设备上使用的网络浏览器。


Android(或者,呃,我敢说,黑莓)有什么类似的吗?
m
maxpaj

在 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);
}

https://i.stack.imgur.com/IV9x3.png

Picture and code snippet is from this great article 涵盖了这个问题和许多其他关于如何让您的 PWA 感觉 iOS 原生的提示。


此自定义警报将一直显示,它需要使用 cookie 或会话进行更多解释,以便为未安装的应用程序用户仅显示一次或每隔“X”天。拥有完整的代码可能会很好:)
R
Rawan-25

在 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的快捷方式图标..


这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review
Jeet,你能解释一下我哪里错了吗是的,这是正确的通过脚本,无法创建添加到主屏幕,但我们可以创建“网络剪辑”,为此我们必须创建 .mobileconfig 文件
谢谢@jaepage .. cttapp.com 是一个在线网站,您可以在其中创建自己的 mobilecofig 文件,现在他们关闭了他们的网页,因此您可以使用developer.apple.com/library/content/documentation/…这个网站很快我将为它创建我们自己的网络工具.. .
您还可以使用“apple configuratior 2”来创建 webclip
M
Miuranga

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

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